EasyPermissions 的github地址是:https://github.com/googlesamples/easypermissions
EasyPermissions 最新版本查詢 https://mvnrepository.com/artifact/pub.devrel/easypermissions?repo=springio-plugins-release
EasyPermissions 集成
dependencies {
// 權限申請
compile 'pub.devrel:easypermissions:1.0.1'
}
EasyPermissions 使用
請求權限
public class MainActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] perms = { Manifest.permission.ACCESS_FINE_LOCATION , Manifest.permission.ACCESS_COARSE_LOCATION };
if (EasyPermissions.hasPermissions( MainActivity.this , perms)) {
// Already have permission, do the thing
} else {
// Do not have permissions, request them now
EasyPermissions.requestPermissions( MainActivity.this, "需要定位權限" , PERMISSIONS_ACCESS_LOCATION, perms);
}
}
@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> perms) {
// 此處表示權限申請已經成功,可以使用該權限完成app的相應的操作了
Log.e(TAG , "同意了 權限申請" );
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
// 此處表示權限申請被用戶拒絕了,此處可以通過彈框等方式展示申請該權限的原因,以使用戶允許使用該權限
//(可選的)檢查用戶是否拒絕授權權限,並且點擊了“不再詢問”(測試如果不點擊 不再詢問也會調用這個方法,所以只要拒絕就會調用這個方法)
//下面的語句,展示一個對話框指導用戶在應用設置裏授權權限
Log.e(TAG , "拒絕了 權限申請" );
if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
new AppSettingsDialog.Builder(this)
.setTitle("申請權限")
.setRationale("應用需要這個權限")
.build()
.show();
Log.e(TAG , "引導設置 申請權限" );
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == AppSettingsDialog.DEFAULT_SETTINGS_REQ_CODE) {
// Do something after user returned from app settings screen, like showing a Toast.
// 當用戶從應用設置界面返回的時候,可以做一些事情,比如彈出一個土司。
Toast.makeText(this, "權限設置界面返回" , Toast.LENGTH_SHORT).show();
}
}