int p = getPackageManager().checkPermission(Manifest.permission.READ_PHONE_STATE, getPackageName());
if(p == PackageManager.PERMISSION_GRANTED) {
// パーミッションあり
}
if(p == PackageManager.PERMISSION_DENIED) {
// パーミッションなし
}
パッケージ名を指定すればいいので、他のアプリもチェックできます。
例えば、インストールされているアプリの中で READ_PHONE_STATE のパーミッションがあるアプリの一覧を出すには次のようにします。
public class MainActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<String> list = new ArrayList<String>();
PackageManager manager = getPackageManager();
List<PackageInfo> packages = manager.getInstalledPackages(0);
for (PackageInfo pkg : packages) {
int p = getPackageManager().checkPermission(Manifest.permission.READ_PHONE_STATE, pkg.packageName);
if(p == PackageManager.PERMISSION_GRANTED) {
list.add(pkg.packageName);
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
setListAdapter(adapter);
}
}
0 件のコメント:
コメントを投稿