一行程式碼搞定漂亮的Android6.0許可權申請介面
阿新 • • 發佈:2019-01-25
概述
隨著Android6.0的普及,許可權申請也變成了我們開發中必寫的一段程式碼。比如sd卡許可權、定位許可權、拍照許可權,這些幾乎都是每個app必備的。而一般情況下我們都會在需要許可權之前申請,然後各種判斷。那既然是一些必備的是許可權,我們為何不在我們一次開啟app的時候就把這個全部都申請了呢?可是一下申請那麼多許可權對使用者來說顯然不是很友好,所以我們不妨在申請許可權之前告訴一下使用者,好讓使用者有個心理準備。於是借鑑了餓了麼的許可權申請介面,封裝了一個庫
效果
專案地址
過程
在申請許可權的過程中難免會遭到使用者無情的拒絕,那麼就會彈出提示告訴使用者這是必備的,你必須得同意!如果使用者再一次手抖選擇拒絕,那麼我們會指引使用者去許可權管理裡面開啟我們的許可權,如果還是拒絕那麼..我特麼真沒轍了!!!
使用
Gradle:
compile 'me.weyye.hipermission:library:1.0.7'
Or Maven:
<dependency>
<groupId>me.weyye.hipermission</groupId>
<artifactId>library</artifactId>
<version>1.0.7</version>
<type>pom</type>
</dependency>
一行程式碼搞定
HiPermission.create(context)
.checkMutiPermission(new PermissionCallback() {
@Override
public void onClose() {
Log.i(TAG, "onClose");
showToast("使用者關閉許可權申請");
}
@Override
public void onFinish() {
showToast("所有許可權申請完成");
}
@Override
public void onDeny(String permisson, int position) {
Log.i(TAG, "onDeny");
}
@Override
public void onGuarantee(String permisson, int position) {
Log.i(TAG, "onGuarantee");
}
});
就這樣輕鬆搞定三個必備的許可權
你想申請別的許可權?那也沒問題
List<PermissonItem> permissonItems = new ArrayList<PermissonItem>();
permissonItems.add(new PermissonItem(Manifest.permission.CAMERA, "照相機", R.drawable.permission_ic_memory));
permissonItems.add(new PermissonItem(Manifest.permission.ACCESS_FINE_LOCATION, "定位", R.drawable.permission_ic_location));
HiPermission.create(MainActivity.this)
.permissions(permissonItems)
.checkMutiPermission(...);
什麼?想改下提示資訊?介面不符合你的主題顏色?so easy
HiPermission.create(MainActivity.this)
.title("親愛的上帝")
.permissions(permissonItems)
.filterColor(ResourcesCompat.getColor(getResources(), R.color.colorPrimary, getTheme()))//圖示的顏色
.msg("為了保護世界的和平,開啟這些許可權吧!\n你我一起拯救世界!")
.style(R.style.PermissionBlueStyle)
.checkMutiPermission(...);
設定主題後一定要呼叫
filterColor()
,否者許可權圖示會變成預設的黑色
styles.xml
<style name="PermissionBlueStyle">
<item name="PermissionTitleColor">@color/colorPrimaryDark</item>
<item name="PermissionMsgColor">@color/colorPrimary</item>
<item name="PermissionItemTextColor">@color/colorPrimary</item>
<item name="PermissionButtonBackground">@drawable/shape_btn</item>
<item name="PermissionBackround">@drawable/shape_bg_white</item>
<item name="PermissionButtonTextColor">@android:color/white</item>
</style>
以下是每個屬性的解釋
屬性名 | 型別 | 解釋 |
---|---|---|
PermissionTitleColor | int | 標題文字顏色 |
PermissionMsgColor | int | 描述文字顏色 |
PermissionItemTextColor | int | 許可權文字顏色 |
PermissionButtonTextColor | int | 按鈕文字顏色 |
PermissionButtonBackground | drawable | 按鈕背景 |
PermissionButtonTextColor | drawable | 對話方塊背景 |
最後
如果這個對你有用,不妨來個star?