【发布时间】:2016-09-09 05:22:41
【问题描述】:
我想以分组方式列出安装在设备上的每个应用所获得的权限。
【问题讨论】:
-
@ShaileshLimbadiya 我不想请求权限。我想要设备上安装的每个应用程序所获得的权限列表。请帮我解决这个问题
-
请检查我的答案
标签: java android android-manifest
我想以分组方式列出安装在设备上的每个应用所获得的权限。
【问题讨论】:
标签: java android android-manifest
请看这个,希望对你有帮助。
private static final int REQUEST_PERMISSIONS = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >=23)
{
getPermission();
}
else
{
initView();
}
}
private void initView()
{
setContentView(R.layout.activity_main);
...
..
}
@TargetApi(Build.VERSION_CODES.M)
private void getPermission()
{
if (ContextCompat.checkSelfPermission(StartActivity.this, Manifest.permission.CAMERA)
+ ContextCompat.checkSelfPermission(StartActivity.this, Manifest.permission.RECORD_AUDIO)
!= PackageManager.PERMISSION_GRANTED) {
Log.i("Permission is require first time", "...OK...getPermission() method!..if");
ActivityCompat.requestPermissions(StartActivity.this,
new String[]{Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO},
REQUEST_PERMISSIONS);
}
else
{
initView();
}
}
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull final String[] permissions, @NonNull final int[] grantResults)
{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_PERMISSIONS) {
if ((grantResults.length > 0) && (grantResults[0]+grantResults[1])
== PackageManager.PERMISSION_GRANTED) {
// Permission granted.
initView();
} else {
Toast.makeText(StartActivity.this, "All Permission is Required, Toast.LENGTH_LONG).show();
getPermission()
}
}
}
【讨论】:
您可以使用 PackageManager 检索应用的权限。见:list of apps permissions
【讨论】: