国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android開源項(xiàng)目-Easypermissions

2019-11-06 09:42:06
字體:
供稿:網(wǎng)友

轉(zhuǎn)自:點(diǎn)擊打開鏈接

Easypermissions簡(jiǎn)化了Android M的運(yùn)行時(shí)權(quán)限的申請(qǐng)、結(jié)果處理、判斷等步驟。

1 相關(guān)文檔

官方文檔:

https://github.com/googlesamples/easypermissions

運(yùn)行時(shí)權(quán)限官方文檔解釋:

https://developer.android.com/training/permissions/requesting.html

2 為什么使用Easypermissions

Android M對(duì)權(quán)限系統(tǒng)進(jìn)行了改變。Android M之前所需權(quán)限只需要在AndroidManifest中申請(qǐng)即可。但更新Android M系統(tǒng)后,部分“Dangerous Permission”需要在運(yùn)行時(shí)詢問申請(qǐng)。

Normal and Dangerous Permissions解釋:https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous

如下圖所示:

運(yùn)行時(shí)權(quán)限申請(qǐng)

代碼中如果需要申請(qǐng)運(yùn)行時(shí)權(quán)限步驟:

1 檢查運(yùn)行時(shí)權(quán)限

ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED

2 申請(qǐng)權(quán)限

ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_CONTACTS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS);

3 接收權(quán)限處理結(jié)果

@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_READ_CONTACTS: { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted, yay! Do the // contacts-related task you need to do. } else { // permission denied, boo! Disable the // functionality that depends on this permission. } return; } // other 'case' lines to check for other // permissions this app might request }}

以上即是google建議的運(yùn)行時(shí)權(quán)限處理過程。代碼量和處理地方還是比較繁瑣的。so,Easypermissions應(yīng)運(yùn)而生。

3 如何使用

首先,引用庫(kù)

dependencies { compile 'pub.devrel:easypermissions:0.1.9'}

同樣,easypermissions處理權(quán)限分為3步。

1 檢查權(quán)限

String[] perms = {Manifest.permission.CAMERA, Manifest.permission.CHANGE_WIFI_STATE};if (EasyPermissions.haspermissions(this, perms)) { //... } else { //...}

2 申請(qǐng)權(quán)限

EasyPermissions.requestPermissions(this, "拍照需要攝像頭權(quán)限", RC_CAMERA_AND_WIFI, perms);

3 實(shí)現(xiàn)EasyPermissions.PermissionCallbacks接口,直接處理權(quán)限是否成功申請(qǐng)

@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // Forward results to EasyPermissions EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); } //成功 @Override public void onPermissionsGranted(int requestCode, List<String> list) { // Some permissions have been granted // ... } //失敗 @Override public void onPermissionsDenied(int requestCode, List<String> list) { // Some permissions have been denied // ... }

4 總結(jié)

Easypermissions主要簡(jiǎn)化了對(duì)權(quán)限申請(qǐng)結(jié)果的處理和判斷,直接以接口的方式回調(diào)處理結(jié)果。不需要再自行進(jìn)行處理。

好用指數(shù),5星!!!


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 集安市| 紫金县| 石景山区| 五寨县| 确山县| 留坝县| 成都市| 长宁区| 上杭县| 文安县| 巴彦淖尔市| 博爱县| 宁明县| 海丰县| 广宁县| 原阳县| 成武县| 夏邑县| 建德市| 邹平县| 池州市| 翁牛特旗| 大名县| 三原县| 铜鼓县| 买车| 岑巩县| 新绛县| 永川市| 公主岭市| 郑州市| 武冈市| 礼泉县| 鄂托克前旗| 体育| 牟定县| 射阳县| 内丘县| 内丘县| 扎赉特旗| 林芝县|