public class PermissionActivity extends Activity {
public static int PERMISSION_REQ = 0x123456;
private String[] mPermission = new String[]{
Manifest.permission.INTERNET,
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
private List<String> mRequestPermission = new ArrayList<>();
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
for (String one : mPermission) {
if (PackageManager.PERMISSION_GRANTED != this.checkPermission(one, Process.myPid(), Process.myUid())) {
mRequestPermission.add(one);
}
}
if (!mRequestPermission.isEmpty()) {
this.requestPermissions(mRequestPermission.toArray(new String[mRequestPermission.size()]), PERMISSION_REQ);
return;
}
}
startActivity();
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
// 版本兼容
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.M) {
return;
}
if (requestCode == PERMISSION_REQ) {
for (int i = 0; i < grantResults.length; i++) {
for (String one : mPermission) {
if (permissions[i].equals(one) && grantResults[i] == PackageManager.PERMISSION_GRANTED) {
mRequestPermission.remove(one);
}
}
}
startActivity();
}
}
public void startActivity() {
if (mRequestPermission.isEmpty()) {
startActivity(new Intent(PermissionActivity.this, MainActivity.class));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
PermissionActivity.this.finish();
}
}, 1500);
} else {
Toast.makeText(this, "PERMISSION DENIED!", Toast.LENGTH_LONG).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
PermissionActivity.this.finish();
}
}, 3000);
}
}
}
先权限申请到,再跳转
最新推荐文章于 2024-07-18 11:07:23 发布