从服务启动第三方应用程序
Launch third party app from Service
我需要从服务启动 activity。我尝试使用:
public void openApplication(String packageName){
Intent intent = new Intent(packageName);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
}
但是我得到这个错误:
E/AndroidRuntime(8563):android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.encrypted flg=0x10000000 }
04-30 11:55:07.507: E/AndroidRuntime(8563): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1765)
04-30 11:55:07.507: E/AndroidRuntime(8563): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1485)
有什么想法吗?
您已经用某个 'action' 创建了一个 Intent
。查找由所需应用程序的 IntentFilter 处理的正确操作字符串。 packageName 与操作不同。
如果多个应用程序应在 IntentFilter 中定义相同的操作,系统将弹出一个 IntentChooser,其中显示了所有这些应用程序。
改用此代码。您需要启动程序包 Intent
:
public void openApplication(String packageName) {
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(packageName);
startActivity(intent);
}
我需要从服务启动 activity。我尝试使用:
public void openApplication(String packageName){
Intent intent = new Intent(packageName);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
}
但是我得到这个错误:
E/AndroidRuntime(8563):android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.encrypted flg=0x10000000 }
04-30 11:55:07.507: E/AndroidRuntime(8563): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1765)
04-30 11:55:07.507: E/AndroidRuntime(8563): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1485)
有什么想法吗?
您已经用某个 'action' 创建了一个 Intent
。查找由所需应用程序的 IntentFilter 处理的正确操作字符串。 packageName 与操作不同。
如果多个应用程序应在 IntentFilter 中定义相同的操作,系统将弹出一个 IntentChooser,其中显示了所有这些应用程序。
改用此代码。您需要启动程序包 Intent
:
public void openApplication(String packageName) {
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(packageName);
startActivity(intent);
}