Доброе утро
Я искал способ узнать, запрашивает ли приложение, учитывая имя пакета, определенное разрешение и предоставляется ли это разрешение (через настройки). Я искал что-то подобное:
if(//com.package.name requests Manifest.permission.camera and that permission is granted)
{//do something}
Я уже читал эту ветку qaru.site/questions/1004855/... но не находит способа узнать, действительно ли приложение запрашивает определенное разрешение и предоставило ли оно,
заранее спасибо
С уважением
Я создал StringBuffer appNameAndPermissions = new StringBuffer();
добавить всю информацию о приложениях и разрешениях.
Работает нормально. Я уже проверял это. Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.
StringBuffer appNameAndPermissions = new StringBuffer();
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo applicationInfo : packages) {
Log.d("test", "App: " + applicationInfo.name + " Package: " + applicationInfo.packageName);
try {
PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
appNameAndPermissions.append(packageInfo.packageName+"*******:\n");
//Get Permissions
String[] requestedPermissions = packageInfo.requestedPermissions;
if(requestedPermissions != null) {
for (int i = 0; i < requestedPermissions.length; i++) {
Log.d("test", requestedPermissions[i]);
appNameAndPermissions.append(requestedPermissions[i]+"\n");
}
appNameAndPermissions.append("\n");
} catch (NameNotFoundException e) {
e.printStackTrace();
}
<uses-permission android:name="android.permission.GET_TASKS"/>
Источник и больше ответов здесь