91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android基于注解6.0權限動態請求框架的示例分析

發布時間:2021-08-09 09:31:25 來源:億速云 閱讀:102 作者:小新 欄目:移動開發

這篇文章主要介紹Android基于注解6.0權限動態請求框架的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

先上圖,看看效果。。。第一次錄制,效果比較差,請將就下。可下載源碼進行親自操作。

Android基于注解6.0權限動態請求框架的示例分析

示例圖

如何接入

1、在項目的gradle中添加如下代碼

buildscript {
  repositories {
    google()
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0'
    classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:1.1.0' //添加這一行
  }
}

allprojects {
  repositories {
    google()
    jcenter()
    maven { url 'https://jitpack.io' }   //添加這一行
  }
}

值得一提:如果你的工程里gradle版本是3.0.0以上,請使用aspectjx:1.1.0以上版本,否則會報Required: PROJECT, SUB_PROJECTS, EXTERNAL_LIBRARIES. Found: EXTERNAL_LIBRARIES, PROJECT, PROJECT_LOCAL_DEPS, SUB_PROJECTS, SUB_PROJECTS_LOCAL_DEPS

aspectjx歷史版本查看地址:https://github.com/HujiangTechnology/gradle_plugin_android_aspectjx/blob/master/CHANGELOG.md

2、在app的module中增加如下

代碼

apply plugin: 'com.android.application'
apply plugin: 'android-aspectjx' //添加這一行

在依賴中增加:

compile 'com.github.zincPower:JPermission:0.1'

簡單使用

1、在需要請求權限的方法加上注解 @Permission,請求權限可以多個,如下

//requestCode可設可不設,框架自帶默認值。在取消和拒絕回調中,會將這個值返回,用于各自請求邏輯處理
@Permission({Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestCode = 100)
private void requestOnePermission() {
  //do something
}

2、編寫取消和拒絕(即點擊了“不再提示”)回調,如下:

@PermissionCanceled()
private void cancel(CancelInfo cancelInfo) {
  //do something when the permission was canceled.
}

@PermissionDenied()
private void deny(DenyInfo denyInfo) {
  //do something when the permission was denied.
}

值得一提:如果被拒絕,可以彈一個對話框,詢問是否要前往系統權限頁面讓用戶自己手動開啟。如果需要的話,可以通過以下代碼前往(對話框自行解決,本框架不包含):

//前往開啟權限的界面
JPermissionUtil.goToMenu(context);

高級使用

1、請求manifest中的所有權限(主要用于app開啟時,進行一次權限請求)

//不需要回調監聽
JPermissionUtil.requestAllPermission(this);

//需要回調監聽
JPermissionUtil.requestAllPermission(this, new IPermission() {
      @Override
      public void ganted() {
        Log.i(JPermissionHelper.TAG, "ganted====》申請manifest的全部");
      }

      @Override
      public void denied(int requestCode, List<String> denyList) {
        Log.i(JPermissionHelper.TAG, "denied====》申請manifest的全部{code=" + requestCode + ";denyList=" + denyList + "}");
      }

      @Override
      public void canceled(int requestCode) {
        Log.i(JPermissionHelper.TAG, "canceled===》申請manifest的全部{code= " + requestCode + "}");
      }
    });

某些特殊情況,初始請求中比較敏感(例如:讀取手機短信 或 定位權限 等),可以使用以下代碼進行剔除初始請求中所包含的權限

List<String> excluePermission = new ArrayList<>();
excluePermission.add(Manifest.permission.CAMERA);
excluePermission.add(Manifest.permission.ACCESS_FINE_LOCATION);
//不需要回調
JPermissionUtil.requestAllPermission(this, excluePermission);

//需要回調
JPermissionUtil.requestAllPermission(this, excluePermission, new IPermission() {
  @Override
  public void ganted() {
    
  }

  @Override
  public void denied(int requestCode, List<String> denyList) {

  }

  @Override
  public void canceled(int requestCode) {

  }
});

2、配置前往的系統權限頁,框架自帶了默認的系統權限頁,但如需根據不同品牌進行個性化設置,可在代碼增加如下代碼

//第一個參數為品牌,框架會根據Build.MANUFACTURER進行匹配(大小寫均可)
//第二個參數為需要處理的類class文件,需要實現IMenu接口
JPermissionUtil.setManuFacturer("genymotion", MyTestGenymotionMenu.class);

3、設置有回調值的取消和拒絕回調。如果請求權限時,填了requestCode=200,則取消或拒絕時會調用requestCode相同(此處即為200)的方法。

@PermissionCanceled(requestCode = 200)
private void cancelCode200(CancelInfo cancelInfo){
  Toast.makeText(this, "cancel__200", Toast.LENGTH_SHORT).show();
}

@PermissionDenied(requestCode = 200)
private void denyCode200(DenyInfo denyInfo){
  Toast.makeText(this, "deny__200", Toast.LENGTH_SHORT).show();
}

值得一提:調用了requestCode相同的方法,同時也會調用不設置requestCode的方法。

4、service和fragment中均可使用

以上是“Android基于注解6.0權限動態請求框架的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卢氏县| 霍林郭勒市| 北海市| 新巴尔虎右旗| 历史| 大荔县| 长白| 宕昌县| 潼南县| 榕江县| 濮阳市| 安达市| 亚东县| 鸡东县| 班戈县| 临城县| 南靖县| 宜宾市| 泽库县| 正蓝旗| 盐城市| 潜山县| 吉木萨尔县| 六枝特区| 安国市| 顺义区| 木兰县| 二连浩特市| 新津县| 汤阴县| 安庆市| 垦利县| 龙泉市| 紫云| 荣昌县| 东山县| 车险| 汉川市| 澎湖县| 桓台县| 山东|