Android - Получить список приложений в режиме отладки
Я пытаюсь разработать приложение для Android, где у меня есть следующее требование. Есть ли способ через код, я могу получить список приложений, установленных на устройствах в режиме отладки.
Заранее спасибо.
РЕДАКТИРОВАТЬ - я попробовал следующий код.
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (int i=0; i < packages.size(); i++)
{
if ((packages.get(i).flags & ApplicationInfo.FLAG_SYSTEM) == 1)
{
//This is for System applications
}
else
{
boolean isDebuggable = (0 != ( getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE ) );
if((pm.getLaunchIntentForPackage(packages.get(i).packageName)!=null) && (isDebuggable = true) )
{
// Only For Apps with debug mode set true, this line should get executed
// But this does not happens
}
}
}
2 ответа
Я пробовал разные методы, но, насколько я понимаю, мы не можем получить список приложений в режиме отладки отдельно.
Используя флаги, мы можем получить только приложение, которое имеет этот код, а не другие приложения, работающие на устройстве.
В любом случае спасибо. Если у кого-то есть другая мысль, пожалуйста, дайте мне знать.
Ну вот,
Intent main = new Intent(Intent.ACTION_MAIN, null);
main.addCategory(Intent.CATEGORY_LAUNCHER);
List pkgAppsList = context.getPackageManager().queryIntentActivities( main, 0);
Это должно дать вам достаточно информации, чтобы запустить приложение.
Из ответа Джастина
Котлин
val allIntent = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER)
val allApps = packageManager.queryIntentActivities(allIntent, 0)
val debugApps = arrayListOf<ActivityInfo>()
allApps.forEach {
val appInfo = (packageManager.getApplicationInfo(
it.activityInfo.packageName,
0
))
if (0 != appInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE) {
debugApps.add(it.activityInfo)
}
}
debugApps.forEach {
Log.d("debugApps", it.packageName)
}
Можно получить все приложения, которые находятся в режиме отладки. На моем устройстве я получаю все приложения, которые я установил с помощью Android Studio.