从服务启动第三方应用程序

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);
}