我正在开发一个使用程序包名称来启动第三方应用程序的应用程序。我做了一些调查,发现所有的应用程序都可以从启动器的意图开始。有没有人知道如何通过点击一个按钮来做到这一点。打开第三方应用程序
回答
你不能真正 '启动应用程序'。你可以尝试从第三方应用程序的启动意图,如果你知道包名称:
Intent intent = getPackageManager().getLaunchIntentForPackage("com.thirdparty.package");
startActivity(intent);
应该将标志设置为“setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED)”以重新打开已打开的应用程序。 – JacksOnF1re 2016-02-24 13:56:35
只是把它放在一个View.OnClickListener:
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = getPackageManager().getLaunchIntentForPackage(theOtherActivityPackage);
startActivity(intent);
}
});
对于上述接受的答案,如果你的模拟器没有安装第三方应用程序,你应该优雅地处理它也。 这里是一个相同的完整代码:
public void openThirdPartyApp() {
Intent intent = new Intent("com.thirdparty.package");
intent.setPackage("com.thirdparty.package");
try {
((Activity) context).startActivityForResult(intent, REQUEST_CODE);
} catch (ActivityNotFoundException e) {
downloadIt();
}
}
private void downloadIt() {
Uri uri = Uri.parse("market://search?q=pname:" + "com.thirdparty.package");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
//creates a small window to notify there is no app available
}
}
}
}
Good answear,但这不适用于我正在做的事情。我正在使用一个包管理器来获取包名,然后启动它。但是这可能会在以后的项目中有用。谢谢你的回答! – Magakahn 2012-05-13 10:46:16
这不起作用...在意图初始化代码中:Intent intent = new Intent(“com.thirdparty.package”);应该有一个像“android.intent.action.MAIN”这样的动作没有? – syonip 2015-12-16 12:05:15
@syonip,你为什么要使用“android.intent.action.MAIN”? – YuDroid 2015-12-16 12:25:15
- 1. 使用Python打开第三方应用程序
- 2. 如何打开第三方应用程序的特定活动
- 3. 从意图打开第三方应用程序
- 4. 检查第三方应用程序是否已经打开
- 5. SWTBot - 检查第三方应用程序是否打开
- 6. 使用第三方应用程序打开优步应用程序,然后回到iOS上的第三方应用程序的可能性
- 7. 无法打开使用第三方应用程序的office文档
- 8. 使用第三方库打包C#应用程序?
- 9. UWP应用程序第三方SDK
- 10. 安卓第三方应用程序
- 11. 控制第三方应用程序
- 12. Yammer第三方应用程序访问
- 13. 第三方HTML5 .HTA应用程序?
- 14. iFrames中的第三方应用程序?
- 15. 启动第三方应用程序
- 16. Cocos2d-JS +第三方应用程序
- 17. 提交iPhone应用程序,第三方
- 18. 第三方应用程序和skype
- 19. WCF - 第三方应用程序认证
- 20. 可以直接在第三方应用程序(android)上打开短信?
- 21. JAVA:可以检测到其他正在打开的第三方应用程序
- 22. 检查第三方应用程序,如果没有安装,请打开
- 23. 将Web应用程序与第三方应用程序集成
- 24. 第三方应用程序中的Qt插件应用程序
- 25. 从Wp8应用程序呼叫第三方应用程序
- 26. PHP - 允许第三方开发人员创建应用程序
- 27. Cocoa应用程序第一次打开
- 28. 第三方应用程序“A”如何让新手iOS设备用户打开第三方应用程序“B”下载的MP3文件?
- 29. C#Winforms应用程序打开第二个Winforms应用程序
- 30. 引用第三方程序集的COM +(.NET)应用程序
重复http://stackoverflow.com/questions/3422758/start-application-knowing-package-name – Calvin 2012-03-17 18:31:30
这不是重复。我问如何开始它,这个问题是如何找到包名。我已经知道如何找到包名。 – Magakahn 2012-03-17 18:34:07