Android权限设置引导
生活随笔
收集整理的這篇文章主要介紹了
Android权限设置引导
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android中當我們需要的權限被禁用時,需要引導用戶去開啟該權限(一般是跳轉到權限設置頁面),這樣可以達到優化用戶體驗的效果。
我們知道Android 6.0之后對于部分敏感權限,如電話、短信、SD和相機等需要進行動態申請并得到用戶的同意后獲得。那么當用戶沒有開啟某個權限A時,我們需要引導用戶去開啟權限A,由于Android機型眾多導致權限設置的入口無法統一,這時我們只能退而求其次,跳轉到具體應用的設置頁面,然后讓用戶自己尋找權限設置選項,進入并打開相應的權限。實現代碼如下:
Intent intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.fromParts("package", context.getPackageName(), null)); if (intent.resolveActivity(context.getPackageManager()) != null) {context.startActivity(intent); }截圖如下:
Android中懸浮窗權限SYSTEM_ALERT_WINDOW也屬于一種敏感權限,在6.0之上需要我們動態申請該權限。但是該權限的設置卻并不在上面提到的權限設置頁面,它有一個獨立的設置入口。代碼如下:
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (intent.resolveActivity(context.getPackageManager()) != null) {context.startActivityForResult(intent, OVERLAY_PERMISSION_REQUEST_CODE); }@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == OVERLAY_PERMISSION_REQUEST_CODE) {if (Settings.canDrawOverlays(context)) {showFloatingView();} else {ToastUtil.showShort(context, "獲取懸浮窗權限失敗");}} }截圖如下:
總結
以上是生活随笔為你收集整理的Android权限设置引导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CA证书合法性验证
- 下一篇: python多线程爬斗破苍穹