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

Java 从服务启动第三方应用程序,java,android,android-intent,android-activity,service,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):andr

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

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)

有什么想法吗?

你已经用一个特定的“动作”创造了一个
意图。查找由所需应用程序的IntentFilter处理的正确操作字符串。packageName与action不同


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

请尝试此代码。您需要获得软件包的启动
意图

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

您正在使用的
Intent
构造函数接受一个操作字符串。它不采用包名称。显然,您的设备上没有任何活动恰巧将其包名作为操作字符串。您需要使用一个
意图
,来标识存在的活动。询问第三方应用程序的开发人员他们建议使用的
意图是什么。嗨!谢谢你的回答。也许我必须补充一点,我想启动的应用程序是一个第三方应用程序,它不是由我创建的。它改变了什么吗?谢谢!!它工作得很好!我能给你点建议吗?我是新来的,对stackoverflow不太了解。但如果我能,请告诉我!再次感谢