我想啓動一個特定的應用程序。 我知道如何做意向,但我想避免選擇菜單,如果有多個應用程序可以處理意圖,我想直接去一個特定的應用程序。希望這是有道理的。如何以編程方式在Android中啓動特定的應用程序?
27
A
回答
23
您直接使用包名/類,例如創建一個新的意圖打電話給你使用twidroid程序如下link text:
Intent intent = new Intent("com.twidroid.SendTweet");
你可能會想要把一個try /在應用程序未安裝時抓住ActivityNotFoundException。
+4
方法如果發生時,您可以拋出異常並在GooglePlay上打開應用程序。 ;) – 2014-02-25 13:40:41
8
Intent intent = new Intent();
intent.setClassName("package.name", "package.name.LauncherActivityName");
startActivityForResult(intent,REQUEST_CODE);
3
您所調用的活動不僅會出現在其自己的包中的Manifest中,而且還會出現在CALLING包的Manifest中。 - 別忘了!
44
您應該使用包管理器的功能。
Context ctx=this; // or you can replace **'this'** with your **ActivityName.this**
try {
Intent i = ctx.getPackageManager().getLaunchIntentForPackage("com.twidroid.SendTweet");
ctx.startActivity(i);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
}
3
我用:
try {
Intent intent = new Intent();
intent.setClassName("package.name", "<your_package_name>");
startActivity(intent);
} catch (NameNotFoundException e) {
Log.e(TAG, e.getMessage());
}
但像卡米認爲這將工作太:
try {
Intent i = ctx.getPackageManager().getLaunchIntentForPackage("com.twidroid.SendTweet");
ctx.startActivity(i);
} catch (NameNotFoundException e) {
Log.e(TAG, e.getMessage());
}
1
在onCreate方法調用
=> openApp();
private void openApp() {
String packageName = "com.google.android.gm";
if (isAppInstalled(activity, packageName))
startActivity(getPackageManager().getLaunchIntentForPackage(packageName));
else Toast.makeText(activity, "App not installed", Toast.LENGTH_SHORT).show();
}
public static boolean isAppInstalled(Activity activity, String packageName) {
PackageManager pm = activity.getPackageManager();
try {
pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
}
return false;
}
+0
非常感謝gmail! – 2018-02-08 10:16:04
相關問題
- 1. 如何以編程方式在Android中啓動特定主頁
- 2. 如何在Android中以編程方式啓動應用程序屏幕
- 3. 以編程方式重新啓動android應用程序
- 4. 如何以編程方式啓動掛架Web應用程序?
- 5. 如何以編程方式啓動Facebook應用程序?
- 6. 如何以編程方式啓動應用程序?
- 7. 如何以編程方式啓動JNLP應用程序?
- 8. 如何在c#中以編程方式自動啓動winform應用程序?
- 9. 以編程方式啓動啓動程序選擇/ Android
- 10. 如何以編程方式確定Android中當前活動的應用程序
- 11. 如何以編程方式獲取特定android應用程序的uri?
- 12. 如何以編程方式重新啓動java web啓動應用程序
- 13. 如何以編程方式啓動android應用程序信息屏幕?
- 14. 如何在Android中以編程方式啓用動畫
- 15. 以編程方式啓動用戶選擇的應用程序
- 16. 如何以編程方式啓用和禁用USB在Android應用程序
- 17. 以編程方式在啓動器中隱藏Android應用程序?
- 18. 如何以特定方向啓動應用程序?
- 19. 如何在Android中崩潰時以編程方式重新啓動/重新啓動應用程序?
- 20. 如何在Android中以編程方式禁用特定應用程序的振動
- 21. 如何以編程方式從啓動程序(在已啓動設備上)中刪除應用程序
- 22. 如何以編程方式重新啓動iOS中的iPhone應用程序
- 23. 如何以編程方式在android中啓動地圖應用程序以顯示方向?
- 24. 如何在android上以編程方式備份應用程序
- 25. 如何以編程方式啓動Windows應用商店應用程序?
- 26. 如何在android中以編程方式添加應用程序快捷方式
- 27. 在應用程序啓動時以編程方式更改啓動窗體?
- 28. 如何在Android中以編程方式啓動主屏幕
- 29. 如何以編程方式獲取用戶啓動的應用程序?
- 30. 以編程方式啓動Mac應用程序
的[打開我們的應用程序的另一個一個應用?]可能重複(http://stackoverflow.com/questions/3342655/open-another-one-application-from-our-application) – Pentium10 2010-07-27 12:19:34