final PackageManager pm = context.getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
String packagename = ((String) packageInfo.loadLabel(pm)).replaceAll(" ", "").toLowerCase();
if(packagename.contains(appname)){
say("Opening"+appname);
Intent launchIntent = pm.getLaunchIntentForPackage(packageInfo.packageName);
Log.v(TAG, ""+launchIntent);
context.startActivity(launchIntent);
}
使用此代码,我的应用程序强制在打开消息传递时关闭,并且仅关闭消息传递。它确实打开了消息传递应用程序,但强制关闭并抛出空指针异常。有什么想法吗?
谢谢你们!
答案 0 :(得分:0)
我怀疑
String packagename = ((String) packageInfo.loadLabel(pm))...
不是获取包名称的合理方式。
为什么不
public String packageName
此项目所在的软件包的名称?