Android RuntimePermissions运行时权限:单个运行时权限申请简例
生活随笔
收集整理的這篇文章主要介紹了
Android RuntimePermissions运行时权限:单个运行时权限申请简例
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Android RuntimePermissions運(yùn)行時(shí)權(quán)限:單個(gè)運(yùn)行時(shí)權(quán)限申請(qǐng)簡(jiǎn)例
Android運(yùn)行時(shí)權(quán)限申請(qǐng)的框架結(jié)構(gòu)和步驟比較簡(jiǎn)單和固定,一般現(xiàn)狀代碼啟動(dòng)后檢查當(dāng)前的Android SDK版本是否大于等于23,在SDK版本大于等于23時(shí)候,才啟動(dòng)運(yùn)行時(shí)權(quán)限申請(qǐng)。在過去的版本,直接在AndroidManifest.xml寫進(jìn)去申請(qǐng)即可。
在檢查當(dāng)前代碼未獲得相應(yīng)權(quán)限時(shí)候,進(jìn)而使用標(biāo)準(zhǔn)方式requestPermissions,然后在回到函數(shù)onRequestPermissionsResult里面處理用戶授權(quán)的結(jié)果。
給出一個(gè)簡(jiǎn)單例子,以相機(jī)權(quán)限為例。在AndroidManifest添加相機(jī)權(quán)限:
<uses-permission android:name="android.permission.CAMERA"/>
package zhangphil.permission;import android.Manifest; import android.content.pm.PackageManager; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log;public class MainActivity extends AppCompatActivity {private final String TAG = "ZHANG PHIL";private final int PERMISSION_REQUEST = 0xa01;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, PERMISSION_REQUEST);}}}@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {if (permissions != null && permissions.length > 0) {for (String s : permissions)Log.d(TAG + "權(quán)限列表", s + "");}switch (requestCode) {case PERMISSION_REQUEST:if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {Log.d(TAG, "授權(quán)獲得");} else {Log.d(TAG, "授權(quán)未獲得");}break;}} }
代碼運(yùn)行在Android SDK高于或等于23時(shí)候有效。代碼運(yùn)行后如圖:
Android運(yùn)行時(shí)權(quán)限申請(qǐng)的框架結(jié)構(gòu)和步驟比較簡(jiǎn)單和固定,一般現(xiàn)狀代碼啟動(dòng)后檢查當(dāng)前的Android SDK版本是否大于等于23,在SDK版本大于等于23時(shí)候,才啟動(dòng)運(yùn)行時(shí)權(quán)限申請(qǐng)。在過去的版本,直接在AndroidManifest.xml寫進(jìn)去申請(qǐng)即可。
在檢查當(dāng)前代碼未獲得相應(yīng)權(quán)限時(shí)候,進(jìn)而使用標(biāo)準(zhǔn)方式requestPermissions,然后在回到函數(shù)onRequestPermissionsResult里面處理用戶授權(quán)的結(jié)果。
給出一個(gè)簡(jiǎn)單例子,以相機(jī)權(quán)限為例。在AndroidManifest添加相機(jī)權(quán)限:
<uses-permission android:name="android.permission.CAMERA"/>
package zhangphil.permission;import android.Manifest; import android.content.pm.PackageManager; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log;public class MainActivity extends AppCompatActivity {private final String TAG = "ZHANG PHIL";private final int PERMISSION_REQUEST = 0xa01;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, PERMISSION_REQUEST);}}}@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {if (permissions != null && permissions.length > 0) {for (String s : permissions)Log.d(TAG + "權(quán)限列表", s + "");}switch (requestCode) {case PERMISSION_REQUEST:if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {Log.d(TAG, "授權(quán)獲得");} else {Log.d(TAG, "授權(quán)未獲得");}break;}} }
代碼運(yùn)行在Android SDK高于或等于23時(shí)候有效。代碼運(yùn)行后如圖:
點(diǎn)擊 總是運(yùn)行 后log日志輸出:
09-19 23:11:47.557 31470-31470/zhangphil.permission D/ZHANG?PHIL權(quán)限列表: android.permission.CAMERA 09-19 23:11:47.557 31470-31470/zhangphil.permission D/ZHANG?PHIL: 授權(quán)獲得總結(jié)
以上是生活随笔為你收集整理的Android RuntimePermissions运行时权限:单个运行时权限申请简例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zabbix NFS挂载 监控模板
- 下一篇: C#-微信公众平台接口-上传临时素材