Android RuntimePermissions运行时权限:单个运行时权限申请简例
生活随笔
收集整理的這篇文章主要介紹了
Android RuntimePermissions运行时权限:单个运行时权限申请简例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android RuntimePermissions運行時權限:單個運行時權限申請簡例
Android運行時權限申請的框架結構和步驟比較簡單和固定,一般現狀代碼啟動后檢查當前的Android SDK版本是否大于等于23,在SDK版本大于等于23時候,才啟動運行時權限申請。在過去的版本,直接在AndroidManifest.xml寫進去申請即可。
在檢查當前代碼未獲得相應權限時候,進而使用標準方式requestPermissions,然后在回到函數onRequestPermissionsResult里面處理用戶授權的結果。
給出一個簡單例子,以相機權限為例。在AndroidManifest添加相機權限:
<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 + "權限列表", s + "");}switch (requestCode) {case PERMISSION_REQUEST:if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {Log.d(TAG, "授權獲得");} else {Log.d(TAG, "授權未獲得");}break;}} }
代碼運行在Android SDK高于或等于23時候有效。代碼運行后如圖:
Android運行時權限申請的框架結構和步驟比較簡單和固定,一般現狀代碼啟動后檢查當前的Android SDK版本是否大于等于23,在SDK版本大于等于23時候,才啟動運行時權限申請。在過去的版本,直接在AndroidManifest.xml寫進去申請即可。
在檢查當前代碼未獲得相應權限時候,進而使用標準方式requestPermissions,然后在回到函數onRequestPermissionsResult里面處理用戶授權的結果。
給出一個簡單例子,以相機權限為例。在AndroidManifest添加相機權限:
<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 + "權限列表", s + "");}switch (requestCode) {case PERMISSION_REQUEST:if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {Log.d(TAG, "授權獲得");} else {Log.d(TAG, "授權未獲得");}break;}} }
代碼運行在Android SDK高于或等于23時候有效。代碼運行后如圖:
點擊 總是運行 后log日志輸出:
09-19 23:11:47.557 31470-31470/zhangphil.permission D/ZHANG?PHIL權限列表: android.permission.CAMERA 09-19 23:11:47.557 31470-31470/zhangphil.permission D/ZHANG?PHIL: 授權獲得總結
以上是生活随笔為你收集整理的Android RuntimePermissions运行时权限:单个运行时权限申请简例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zabbix NFS挂载 监控模板
- 下一篇: android sina oauth2.