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

时间:2015-04-30 15:07:04

标签: java android android-intent android-activity service

我需要从服务启动活动。我尝试使用:

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)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

请尝试使用此代码。您需要为该软件包启动Intent

public void openApplication(String packageName) {
    PackageManager pm = getPackageManager();
    Intent intent = pm.getLaunchIntentForPackage(packageName);
    startActivity(intent);
}

答案 1 :(得分:0)

您已创建了Intent,其中包含某项“操作”。找到由所需应用程序的IntentFilter处理的正确操作字符串。 packageName 与操作不一样

如果多个应用程序应在IntentFilter中定义相同的操作,系统将弹出一个IntentChooser,其中显示所有这些应用程序。