-2

私のアプリケーションは強制的に閉じられています。私を助けてください。モバイルのアプリケーションで使用されている権限リストを取得したい。

package com.permissions;

import android.os.Bundle;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.view.Menu;
import android.widget.TextView;

public class GetPermissions extends Activity {

TextView tvShow;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_get_permissions);

    tvShow = (TextView) findViewById(R.id.tvshow);
    tvShow.setText(PackageManager.GET_PERMISSIONS);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.get_permissions, menu);
    return true;
}

}
4

1 に答える 1

1

まず第一に、ラインtvShow.setText(PackageManager.GET_PERMISSIONS);は役に立ちません。マニフェスト ファイルで指定したアクセス許可のみが取得されます。マニフェスト ファイルで宣言されていない必要なアクセス許可は、LogCat エラーに表示されます。

アプリで使用されているアクセス許可を取得する場合は、ここのコードが役立ちます

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);

for (Object obj : pkgAppsList) {
  ResolveInfo resolveInfo = (ResolveInfo) obj;
  PackageInfo packageInfo = null;
  try {
    packageInfo = getPackageManager().getPackageInfo(resolveInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS);
  } catch (NameNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  String[] requestedPermissions = packageInfo.requestedPermissions;
}
于 2013-08-13T13:51:21.360 に答える