日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6.0动态加载权限用PermissionGen

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6.0动态加载权限用PermissionGen 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ndroid 6.0 新增加了運行時的動態添加權限,在此介紹一個第三方庫,PermissionGen,可以很方便簡潔的增加 6.0權限

?

首先給大家上 ?PermissionGen 庫地址:https://github.com/lovedise/PermissionGen

?

下面給大家詳細介紹它的使用:

1.引用庫:

? ? 在 app gradle 中引入: ? ?

compile 'com.lovedise:permissiongen:0.0.6'

在需要權限檢測的地方 調用:

? ?

  • private void requestPhotoPermiss(){
  • PermissionGen.with(mContext)
  • .addRequestCode(PHOTO_PERMISS)
  • .permissions(
  • Manifest.permission.WRITE_EXTERNAL_STORAGE,
  • Manifest.permission.CAMERA)
  • .request();
  • }
  • 其中 ?PermissionGen.with(mContext) 中的 mContext 可以是 Activity,也可以是 Fragment ?,photo_permiss 這個常量是自己定義的,之后需要重寫?

    onRequestPermissionsResult

    方法,重寫如下:

  • @Override
  • public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
  • PermissionGen.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
  • }

  • 之后會異步返回兩個方法,成功和失敗,它們是用注解寫的,方法里注解的requestCode 要和你之前定義的常量一致’,方法如下

    ?

  • @PermissionSuccess(requestCode = PHOTO_PERMISS)
  • public void requestPhotoSuccess(){
  • //成功之后的處理
  • //.......
  • }
  • @PermissionFail(requestCode = PHOTO_PERMISS)
  • public void requestPhotoFail(){
  • //失敗之后的處理,我一般是跳到設置界面
  • AppUtil.goToSetting(mContext);
  • }

  • goToSetting(Context Context)方法代碼如下:

  • /***
  • * 去設置界面
  • */
  • public static void goToSetting(Context context){
  • //go to setting view
  • Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
  • Uri uri = Uri.fromParts("package", getPackageName(), null);
  • intent.setData(uri);
  • context.startActivity(intent);
  • }

  • 注意,在引入 ?Gen的庫的時候,可能會出現同步失敗的問題,出現如下類似問題:

    Error:(7, 9) Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:7:9 Error:(7, 9) Execution failed for task ':importdemo:processDebugManifest'. > Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:7:9 is also present at com.pnikosis:materialish-progress:1.0:13:9 value=(@drawable/ic_launcher) Suggestion: add 'tools:replace="android:icon"' to <application> element a

    ?

    這是由于 庫中引用的 value 和 你項目中 mainfast 中的 value 發生沖突,解決辦法如下:

    在你的 application 中加上 類似的 tools replace 代碼,然后在 xml 文件頭 添上 tools 的聲明,rebuild 你的項目即可解決沖突

    ?

    最后要說的是,其實最近網上用的比較 多的庫 是 AndPermission 庫,但是我當時在引用的時候發現 他的 success 和 failed 方法沒有調用,由于時間緊急,便用了這個比較老的庫,但是庫雖老,用起來還是不錯的,對于?AndPermission 庫的使用大家若出現和我一樣的問題,歡迎討論,再此附上?AndPermission 庫地址:

    ? ??https://github.com/yanzhenjie/AndPermission

    ?

    大家有什么交流的話,隨時留言,謝謝誒

    轉載于:https://www.cnblogs.com/Free-Thinker/p/9646329.html

    總結

    以上是生活随笔為你收集整理的6.0动态加载权限用PermissionGen的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。