private static void checkPermissions(
final Activity activity) {
try {
ClassLoader classLoader = activity.getClassLoader();
classLoader.loadClass(
"android.support.v4.app.ActivityCompat");
classLoader.loadClass(
"android.support.v4.content.ContextCompat");
Context applicationContext = activity.getApplicationContext();
PackageManager packageManager = applicationContext.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(
applicationContext.getPackageName(),
PackageManager.GET_PERMISSIONS);
String[] requirePermissions = packageInfo.requestedPermissions;
final ArrayList<String> deniedPermissions =
new ArrayList<>(requirePermissions.length);
for (String permission : requirePermissions) {
if (ContextCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_DENIED) {
deniedPermissions.add(permission);
}
else {
}
}
if (deniedPermissions.size() >
0) {
activity.runOnUiThread(
new Runnable() {
@Override
public void run() {
String[] requestPermissions =
new String[deniedPermissions.size()];
requestPermissions = deniedPermissions.toArray(requestPermissions);
ActivityCompat.requestPermissions(activity, requestPermissions, PERMISSIONS_REQUEST_CODE);
}
});
}
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
catch (NoSuchMethodError error) {
error.printStackTrace();
}
}
转载请注明原文地址: https://ju.6miu.com/read-5399.html