如何從Android應用程序啓動其他Android應用程序,如果我有應用程序的軟件包名稱?如何從Android應用程序啓動其他Android應用程序?
例如:我在Android App中創建了Button
。按下按鈕時,Skype將啓動。
- 是否可以在Android中執行上述操作?
- 當Button被點擊後,是否應該使用Intent來啓動其他應用程序?
- 它需要什麼權限?
在此先感謝。
如何從Android應用程序啓動其他Android應用程序,如果我有應用程序的軟件包名稱?如何從Android應用程序啓動其他Android應用程序?
例如:我在Android App中創建了Button
。按下按鈕時,Skype將啓動。
在此先感謝。
因爲它不是你的應用程序,正如你所說的,「Skype」。您可以在意圖中使用應用程序的包ID。
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(launchIntent);
對於Skype的,它成爲
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.skype.raider");
startActivity(launchIntent);
在你的Java文件,說MainActivity.java
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.skype.raider");
startActivity(launchIntent);
}
});
而且在佈局文件,說activity_main.xml中
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Skype →"
android:id="@+id/button"
android:textColor="@color/white"/>
您可以使用下面的代碼,推出的Skype或任何其他應用程序:
PackageManager packageManager = getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage("<skype_package_name>");
startActivity(intent);
試試這個代碼:
PackageManager pm = context.getPackageManager();
try {
if (pm.getApplicationInfo("com.your.package.name", 0) == null) {
// no talk, no update
Toast.makeText(context, "packagenot found", Toast.LENGTH_SHORT).show();
} else {
Intent packageIntent= pm.getLaunchIntentForPackage("com.your.package.name");
packageIntent.addCategory(Intent.ACTION_SENDTO);
packageIntent.setType("text/plain");
startActivity(packageIntent);
}
} catch (PackageManager.NameNotFoundException e) {
// no talk, no update
Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show();
}
是如果你有其他的應用程序包名稱
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("other app package name");
startActivity(LaunchIntent);
final String appPackageName = "com.example";
final Intent openPlayStore = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
if (hasHandlerForIntent(openPlayStore))
startActivity(openPlayStore);
else
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
private boolean hasHandlerForIntent(Intent intent) {
return getActivity().getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
}
參考http://stackoverflow.com/questions/3872063/launch-an-application-from-another-application-on-android – sasikumar
http://stackoverflow.com/questions/3872063/launch-an-application-從另一個應用程序在Android –
在這個頁面的右上角,你會發現一個白色的輸入字段。你知道......這是用於搜索的目的, – nax83