Android系統中,目前Dangerous級別的許可權都需要動態申請。步驟如下; 1、AndroidManfiest.xml中申明需要的動態許可權 2、代碼中檢查許可權、申請許可權 如下方法執行之後,會彈出提示框,提示要申請該許可權 3、獲取結果 轉載請註明鏈接:http://www.cnblogs.com ...
Android系統中,目前Dangerous級別的許可權都需要動態申請。步驟如下;
1、AndroidManfiest.xml中申明需要的動態許可權
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.plbear.yyj.dangerouspermission"> <!-- 聲明許可權 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
2、代碼中檢查許可權、申請許可權
如下方法執行之後,會彈出提示框,提示要申請該許可權
fun onClick_requestPermission(v: View) { if (ContextCompat.checkSelfPermission(applicationContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 0); } }
3、獲取結果
1 override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { 2 var i = 0; 3 while (i < permissions.size) { 4 Log.e(TAG, "permission:" + permissions[i] + " grantResult:" + grantResults[i]) 5 i++ 6 } 7 super.onRequestPermissionsResult(requestCode, permissions, grantResults) 8 }
轉載請註明鏈接:http://www.cnblogs.com/yanyojun/p/8013003.html
本文所有代碼已放置到GitHub:https://github.com/YanYoJun/DangerousPermission/