Permission is an Android library that simplifies the process of requesting permissions at runtime (only applicable for Android M or higher).
- API 15 or higher
Include the library in your app/build.gradle
dependencies{
compile 'com.simple.tuanbaros:permission:1.2'
}
- Init a Permission instance in your activity
private Permission mPermission;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPermission = new Permission(this);
setContentView(R.layout.activity_main);
}
- Override
onRequestPermissionsResult
in your activity
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
mPermission.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
- Add permission for method need request permission
@Request(permissions = {
Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION
})
private void yourMethod(String s) {
mPermission.requestPermissions(new Class[] { String.class },
new Response() {
@Override
public void onPermissionGranted() {
// TODO: 03/07/2017
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
// TODO: 03/07/2017
}
});
}
- For Activity
-
Extend
com.simple.permission.SimpleActivity
-
Register permissions
-
Sample
@Request(permissions = {
Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION
})
public class SampleActivity extends SimpleActivity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
@Override
public void onPermissionGranted() {
// TODO: 03/07/2017
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
// TODO: 03/07/2017
}
}
- For Fragment
-
Extend
com.simple.permission.SimpleFragment
-
Register permissions
-
Sample
@Request(permissions = {
Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION
})
public class SampleFragment extends SimpleFragment {
@Override
public void onPermissionGranted() {
// TODO: 03/07/2017
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
// TODO: 03/07/2017
}
}
-
If your method have no params, you parse
new Class[] {}
-
If your method have params, you parse
new Class[]{ TypeOfParam1.class, TypeOfParam2.class, ... , TypeOfParamN.class }
-
If your activity extends
com.simple.permission.SimpleActivity
or your fragment extendscom.simple.permission.SimpleFragment
, you mustn't implement step 1 & 2 for method -
Of course, you need add permissions in your
AndroidManifest.xml