从我们的应用程序打开另一个应用程序?

5

我的应用程序需要打开另一个应用程序,有可能像这样打开吗?


1
请查看Intents的使用:http://developer.android.com/reference/android/content/Intent.html - Noya
3个回答

8
你应该使用软件包管理器提供的功能。
try {
    Intent i = ctx.getPackageManager().getLaunchIntentForPackage("com.android.browser");
    ctx.startActivity(i);
} catch (NameNotFoundException e) {
    // TODO Auto-generated catch block
}

如果getLaunchIntentForPackage返回null,请参考此答案:https://dev59.com/wV0a5IYBdhLWcg3wW3Ya#65140578 或此教程:https://developer.android.com/training/package-visibility/declaring。简而言之,您必须将以下内容添加到您的清单中: <queries> <package android:name="com.example.store" /> </queries> - Anhayt Ananun

3

也许你正在寻找一种方法来从另一个包中启动另一个类

Intent myIntent = new Intent();
myIntent.setClassName("com.android.samples", "com.android.samples.Animation1");
myIntent.putExtra("com.android.samples.SpecialValue", "Hello, Joe!"); // key/value pair, where key needs current package prefix.
startActivity(myIntent);    

阅读有关在常见任务文章中打开屏幕的教程


1

你可以使用Activity.startActivity(intent)来启动其他应用程序。

像这样使用:

Intent intent = new Intent();
String pkg = "com.android.browser";
String cls = "com.android.browser.BrowserActivity";
intent.setClassName(pkg, cls); 
startActivity(intent);

你需要知道要调用的活动的包和类名称,如果不是你自己的应用程序,则 Dev Tools 应用程序中的 Package Browser 将有所帮助。


2
请注意,使用手写常量如“com.android.browser”和“com.android.browser.BrowserActivity”是使用私有实现细节(这些不是SDK的一部分),因此您应该预期这样的代码在不同设备和平台版本之间会出现问题。 - hackbod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接