私のソフトウェアでAndroidのアプリを実行する許可を確認したい。
このため、私は次のコードを持っています:
List<App> apps = new ArrayList<App>();
ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
PackageManager packageManager = getPackageManager();
List<RunningAppProcessInfo> l = am.getRunningAppProcesses();
Iterator<RunningAppProcessInfo> i = l.iterator();
PackageManager pm = this.getPackageManager();
int row_count = 0 ;
while(i.hasNext()) {
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
try
{
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
App app = new App();
app.setTitle(c.toString());
app.setPackageName(l.get(row_count).processName);
PackageInfo packageInfo = packageManager.getPackageInfo(l.get(row_count).processName, PackageManager.GET_PERMISSIONS);
String[] reqPermission= packageInfo.requestedPermissions;
app.set_Permission_Info(reqPermission);
// app.setVersionName(p.versionName);
// app.setVersionCode(p.versionCode);
// CharSequence description = p.applicationInfo.loadDescription(packageManager);
// app.setDescription(description != null ? description.toString() : "");
row_count++;
// app.setSize(p.s)
apps.add(app);
}
catch(Exception e){}
しかし問題がある。
アプリを実行すると、アプリ名とアプリのパッケージ名に一貫性がないことがわかりました。なぜこの問題が発生したのですか?
主な問題は次のとおりです。
「EBOOK_Reader」と「Camera」という名前のアプリが私のデバイスで実行されていると仮定します。パッケージ名はそれぞれ「com.ab」と「com.cd」です。このコードの問題は、適切なパッケージ名が適切なアプリ名と一致していないことです。
「com.ab」から「Camera」、「com.cd」から「EBOOK_Reader」のパッケージ名が表示されますが、これは望ましくありません。
問題をどのように解決できるかについてのアイデアはありますか?ありがとうございました