最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 6.0權(quán)限申請(qǐng)?jiān)斀饧皺?quán)限資料整理

 更新時(shí)間:2016年10月12日 16:46:08   作者:DontLazy  
這篇文章主要介紹了Android 6.0權(quán)限申請(qǐng)?jiān)斀饧皺?quán)限資料整理的相關(guān)資料,需要的朋友可以參考下

在android 6.0開(kāi)始,部分的權(quán)限需要我們動(dòng)態(tài)申請(qǐng),也就是說(shuō)當(dāng)我們的打開(kāi)app的時(shí)候系統(tǒng)不會(huì)主動(dòng)像您申請(qǐng)app所需要的部分權(quán)限,需要客戶在使用app的時(shí)候主動(dòng)的去申請(qǐng)。

一、權(quán)限的申請(qǐng)兩步驟:

1、權(quán)限申請(qǐng):

/**
 * @param permissions需要申請(qǐng)的權(quán)限
 * @param requestCode申請(qǐng)回調(diào)code
 */
 public static void requestPermissions(final @NonNull Activity activity,final @NonNullString[] permissions, final int requestCode)

2、申請(qǐng)回調(diào)處理:

 /**

 *@param requestCode申請(qǐng)回調(diào)code

 *@param permissions申請(qǐng)的權(quán)限

 *@param grantResults返回申請(qǐng)狀態(tài)PackageManager#PERMISSION_GRANTED(授予) PackageManager#PERMISSION_DENIED(拒絕)

 */

 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)

二、Fragment中運(yùn)行時(shí)權(quán)限的特殊處理

在Fragment中申請(qǐng)權(quán)限,不要使用ActivityCompat.requestPermissions, 直接使用Fragment的requestPermissions方法,否則會(huì)回調(diào)到Activity的onRequestPermissionsResult如果在Fragment中嵌套Fragment,在子Fragment中使用requestPermissions方 法,onRequestPermissionsResult不會(huì)回調(diào)回來(lái),建議使用 getParentFragment().requestPermissions方法,

這個(gè)方法會(huì)回調(diào)到父Fragment中的onRequestPermissionsResult,加入以下代碼可以把回調(diào)透?jìng)鞯阶覨ragment

 @Override

 public void  onRequestPermissionsResult(int requestCode, String[] permissions, int[]  grantResults) {

   super.onRequestPermissionsResult(requestCode,  permissions, grantResults);

   List  fragments = getChildFragmentManager().getFragments();

   if (fragments != null)  {

   for (Fragment  fragment : fragments) {

      if (fragment !=  null) {

        fragment.onRequestPermissionsResult(requestCode,permissions,grantResults);

      }

   }

 }
}

三、權(quán)限申請(qǐng)的簡(jiǎn)單封裝

 public class RequestPermissions {

   public static intREQUEST_EXTERNAL_STORAGE = 1;

   public static String[]PERMISSIONS_STORAGE = {

        Manifest.permission.READ_EXTERNAL_STORAGE,

        Manifest.permission.WRITE_EXTERNAL_STORAGE

   };

   /**

   *讀寫(xiě)權(quán)限申請(qǐng)回調(diào)true有權(quán)限false無(wú)權(quán)限

   *

   * @param mContext

   */

   public static voidwriteExternalStorage(final Context mContext, PermissionCallBack mCallBack) {

   //檢查是否擁有相應(yīng)的權(quán)限

      int permission =ActivityCompat.checkSelfPermission(mContext,Manifest.permission.WRITE_EXTERNAL_STORAGE);

   //沒(méi)有權(quán)限發(fā)起申請(qǐng)

   if (permission !=PackageManager.PERMISSION_GRANTED) {

   //6.0及以上版本才需要申請(qǐng)權(quán)限

      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)

        ActivityCompat.requestPermissions((Activity) mContext,PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);

      else {

        mCallBack.setOnPermissionListener(false);

      }

   } else {

      mCallBack.setOnPermissionListener(true);

   }

 }

   /**

   *讀寫(xiě)權(quán)限申請(qǐng)回調(diào)true有權(quán)限false無(wú)權(quán)限

   *

   * @param mContext

   */

 public static voidwriteExternalStorage(final Context mContext, PermissionCallBack mCallBack, intrequestCode) {

   //檢查是否擁有相應(yīng)的權(quán)限

   int permission =ActivityCompat.checkSelfPermission(mContext,Manifest.permission.WRITE_EXTERNAL_STORAGE);

   //沒(méi)有權(quán)限發(fā)起申請(qǐng)

   if (permission !=PackageManager.PERMISSION_GRANTED) {

      //6.0及以上版本才需要申請(qǐng)權(quán)限

      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)

        ActivityCompat.requestPermissions((Activity) mContext,PERMISSIONS_STORAGE,requestCode);

      else {

        mCallBack.setOnPermissionListener(false);

      }

   } else {

      mCallBack.setOnPermissionListener(true);

   }

 }

 /**

 *權(quán)限申請(qǐng)回調(diào),需要在你調(diào)用的Activity中onRequestPermissionsResult調(diào)用該方法true申請(qǐng)權(quán)限成功false申請(qǐng)權(quán)限失敗

 *

 * @param requestCode

 * @param permissions

 * @param grantResults

 */

 public static void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,@NonNull int[] grantResults, PermissionCallBack mCallBack) {

   if (requestCode ==REQUEST_EXTERNAL_STORAGE) {

      //判斷權(quán)限是否申請(qǐng)成功

      if(grantResults.length > 0 && grantResults[0] ==PackageManager.PERMISSION_GRANTED) {

        mCallBack.setOnPermissionListener(true);

      } else {

        mCallBack.setOnPermissionListener(false);

      }

      return;

   }

 }

 /**

 * 6.0以下申請(qǐng)打開(kāi)權(quán)限管理

 *

 * @param mContext

 */

 public static void openPre(final Context mContext) {

   RemindDialogUtil.showRemindDialog(mContext, "當(dāng)前無(wú)權(quán)限,將無(wú)法進(jìn)行應(yīng)用升級(jí)~,是否打開(kāi)設(shè)置?", new RemindDialogUtil.DialogCallBack() {

      @Override

      public void clickYes() {

        //跳轉(zhuǎn)到設(shè)置頁(yè)面,手動(dòng)打開(kāi)權(quán)限

        Intent intent= new Intent();

        intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);

        mContext.startActivity(intent);

        RemindDialogUtil.hideRemindDialog();

      }

      @Override

      public voidclickCancel() {

        RemindDialogUtil.hideRemindDialog();

      }

   });

   }

   public interfacePermissionCallBack {

      void setOnPermissionListener(Boolean bo);

   }

 }

附錄

以下權(quán)限都需要在運(yùn)行時(shí)判斷:

身體傳感器

日歷

攝像頭

通訊錄

地理位置

麥克風(fēng)

電話

短信

存儲(chǔ)空間

以下權(quán)限只需要在AndroidManifest.xml中聲明即可使用

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

android.permission.ACCESS_NETWORK_STATE

android.permission.ACCESS_NOTIFICATION_POLICY

android.permission.ACCESS_WIFI_STATE

android.permission.ACCESS_WIMAX_STATE

android.permission.BLUETOOTH

android.permission.BLUETOOTH_ADMIN

android.permission.BROADCAST_STICKY

android.permission.CHANGE_NETWORK_STATE

android.permission.CHANGE_WIFI_MULTICAST_STATE

android.permission.CHANGE_WIFI_STATE

android.permission.CHANGE_WIMAX_STATE

android.permission.DISABLE_KEYGUARD

android.permission.EXPAND_STATUS_BAR

android.permission.FLASHLIGHT

android.permission.GET_ACCOUNTS

android.permission.GET_PACKAGE_SIZE

android.permission.INTERNET

android.permission.KILL_BACKGROUND_PROCESSES

android.permission.MODIFY_AUDIO_SETTINGS

android.permission.NFC

android.permission.READ_SYNC_SETTINGS

android.permission.READ_SYNC_STATS

android.permission.RECEIVE_BOOT_COMPLETED

android.permission.REORDER_TASKS

android.permission.REQUEST_INSTALL_PACKAGES

android.permission.SET_TIME_ZONE

android.permission.SET_WALLPAPER

android.permission.SET_WALLPAPER_HINTS

android.permission.SUBSCRIBED_FEEDS_READ

android.permission.TRANSMIT_IR

android.permission.USE_FINGERPRINT

android.permission.VIBRATE

android.permission.WAKE_LOCK

android.permission.WRITE_SYNC_SETTINGS

com.android.alarm.permission.SET_ALARM

com.android.launcher.permission.INSTALL_SHORTCUT

com.android.launcher.permission.UNINSTALL_SHORTCUT

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Android基于高德地圖poi的仿微信獲取位置功能實(shí)例代碼

    Android基于高德地圖poi的仿微信獲取位置功能實(shí)例代碼

    這篇文章主要介紹了Android基于高德地圖poi的仿微信獲取位置功能,當(dāng)用戶打開(kāi)頁(yè)面自動(dòng)定位,同時(shí)搜索周邊所有poi,點(diǎn)擊搜索按鈕輸入關(guān)鍵字,獲取關(guān)鍵字搜索結(jié)果,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2017-12-12
  • Android常用的intent action匯總

    Android常用的intent action匯總

    這篇文章主要介紹了Android常用的intent action功能與用法,分析了intent的原理以及action屬性常用動(dòng)作名稱(chēng)、作用與使用方法,需要的朋友可以參考下
    2016-10-10
  • Android下拉刷新官方版

    Android下拉刷新官方版

    這篇文章主要介紹了Android下拉刷新官方版的的相關(guān)資料,幫助大家實(shí)現(xiàn)Android下拉刷新,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android中Fragment的解析和使用詳解

    Android中Fragment的解析和使用詳解

    現(xiàn)在Fragment的應(yīng)用真的是越來(lái)越廣泛了,之前Android在3.0版本加入Fragment的時(shí)候,主要是為了解決Android Pad屏幕比較大,空間不能充分利用的問(wèn)題,但現(xiàn)在即使只是在手機(jī)上,也有很多的場(chǎng)景可以運(yùn)用到Fragment了,這篇文章給大家介紹了Android中Fragment的解析和使用。
    2016-11-11
  • Android實(shí)現(xiàn)文件下載

    Android實(shí)現(xiàn)文件下載

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)文件下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Android實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼

    Android實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼

    在登錄注冊(cè)軟件時(shí),經(jīng)常會(huì)要求填寫(xiě)隨機(jī)驗(yàn)證碼,這篇文章為大家詳細(xì)主要介紹了Android實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android RecyclerView使用方法詳解

    Android RecyclerView使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Android RecyclerView的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android AutoCompleteTextView控件使用實(shí)例

    Android AutoCompleteTextView控件使用實(shí)例

    AutoCompleteTextView這個(gè)控件用于輸入框的自動(dòng)完成提示,非常適合搜索框等。它本質(zhì)上是個(gè)EditText,實(shí)際上它也是從EditText繼承的,使用起來(lái)也十分簡(jiǎn)單
    2014-04-04
  • 一個(gè)吸頂Item的簡(jiǎn)單實(shí)現(xiàn)方法分享

    一個(gè)吸頂Item的簡(jiǎn)單實(shí)現(xiàn)方法分享

    這篇文章主要給大家介紹了一個(gè)吸頂Item的簡(jiǎn)單實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Android多渠道打包神器ProductFlavor詳解

    Android多渠道打包神器ProductFlavor詳解

    最近一直在學(xué)習(xí)Android Gradle 相關(guān)的知識(shí)點(diǎn),今天剛好看到了 ProductFlavor 這節(jié),ProductFlavor 的出現(xiàn)非常友好的幫助我們開(kāi)發(fā)者解決了版本區(qū)分的問(wèn)題
    2022-07-07

最新評(píng)論

罗江县| 唐河县| 太康县| 安塞县| 淮北市| 垣曲县| 兴宁市| 松原市| 大姚县| 万州区| 信宜市| 颍上县| 蒙城县| 贵定县| 承德市| 海城市| 婺源县| 常山县| 安溪县| 重庆市| 红桥区| 汉中市| 沙湾县| 布尔津县| 大港区| 彰化县| 田阳县| 汶上县| 诸暨市| 昌平区| 固镇县| 白沙| 大兴区| 温泉县| 宝坻区| 通道| 宜川县| 武宣县| 颍上县| 乌拉特前旗| 东阿县|