以下は、パーミッションを順を追って説明する例です。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PackageManager pm = getPackageManager();
try {
PackageInfo pi = pm.getPackageInfo("<INTERESTING PACKAGE NAME>", PackageManager.GET_PERMISSIONS);
if ((null == pi.requestedPermissions) ||
(pi.requestedPermissions.length == 0)) {
Log.d("NOTE", "Package has NO permissions!");
return;
}
for (int i = 0; i < pi.requestedPermissions.length; ++i) {
Log.d("NOTE", pi.requestedPermissions[i] + " " + checkCallingOrSelfPermission(pi.requestedPermissions[i]));
}
} catch (NameNotFoundException e) {
Log.d("ERR", "Package name is wrong!");
}
}
編集:あなたの質問は、アプリが使用している権限を尋ねているようです。このコードは、リクエストした権限をアプリに伝えます。何が使用されているかを知りたい場合は、アプリからすべてのアクセス許可を削除する必要があります (実際にそれらのいずれかが必要な場合は実行時エラーが発生します)。その後、エラー ログを読み取ったり、正しく機能するまでアクセス許可を段階的に追加したりします。 、実際に必要なものを手で決定します。