我想将我的活动(com.myapp.launcher.settings)添加到空ArrayList中.
ArrayList selectedApps = new ArrayList();
selectedApps.add(/*WHAT GOES IN HERE?*/);
但我不知道如何使用我的活动获取ResolveInfo对象.
我设法制定了一个解决方法,遍历所有应用程序以查找我的活动.但它不是非常有效或实用:
// Get an array list of all apps
ArrayList allApps = (ArrayList) pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
for(final ResolveInfo app : allApps) {
// If it's name is "com.myapp.launcher.settings" add it
if(app.activityInfo.name.equals("com.myapp.launcher.settings")) {
selectedApps.add(app);
}
}
解决方法:
只需使用具有明确意图的resolveActivity即可.可能是这样的:
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.myapp", "com.myapp.launcher.settings"));
ResolveInfo app = pm.resolveActivity(intent, 0);
selectedApps.add(app);
标签:android,java
来源: https://codeday.me/bug/20190725/1535151.html