如何从我的应用程序打开来自其他应用程序的特定活动?

Posted

技术标签:

【中文标题】如何从我的应用程序打开来自其他应用程序的特定活动?【英文标题】:How to open from my app a specific activity from an other app? 【发布时间】:2017-06-03 01:32:19 【问题描述】:

我正在开发一个应用程序,它可以通过意图打开其他应用程序并且它运行良好,但现在我需要打开一个特定的活动(或应用程序的一部分),我什至不知道它是否可能。

在这种情况下,我想从 Google Cardboard 应用程序打开街景。我无法弄清楚或找到这样做的方法。

这是我使用的意图(有效但不能完全完成任务):

public void actionOpenCardboard(View view) 
    Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.google.samples.apps.cardboarddemo");
    if (launchIntent != null) 
        startActivity(launchIntent);
    

【问题讨论】:

【参考方案1】:

您可以通过这种方式启动Activity

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example", "com.example.MyExampleActivity"));
startActivity(intent);

此外,您可能需要将android:exported="true" 添加到您从中调用上述代码的Activity 的清单中。

【讨论】:

他需要从他的应用中打开 Google Cardboard 应用的街景视图。 如果是 Cardboard 应用中的Activity,他可以使用它,前提是他知道应用的 Activity 名称和包名称【参考方案2】:

您必须了解“Google Cardboard 应用程序”如何打开“街景”以及需要哪些参数(即当前纬度、经度、缩放级别)。

如果你很幸运,IntentIntercept app 可以帮助你找出必要的意图细节。

如果您只需要地图,并且地图来自“Google Cardboard 应用”或任何其他地图应用并不重要,您可以尝试使用地理 uri 的 ACTION_VIEW。

private void onButtonClick[] 
    double lat = 52.1;
    double lon = 9.2;
    double zoom = 10;

    // no need for  de.k3b.geo-lib for simple request:
    String uriGeoSimple = String.format(Locale.ENGLISH, 
                "geo:0,0?q=%f,%f&z=%f", lat, lon,zoom);

    // (1) GEOClientActivity creates and sends an android ACTION_VIEW intent 
    // with coordinate
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uriGeoSimple));
    startActivity(intent);

更多详情见

概览https://github.com/k3b/k3b-geoHelper/wiki/Android-Geo-howto 有关 geo-uri 格式的更多信息:https://github.com/k3b/k3b-geoHelper/wiki/data#geo 文档来自开源 k3b-geoHelper 库。只要你不想解析和理解 geo-uris,你可以在没有 lib 的情况下轻松完成

如果您发现“Google Cardboard 应用”所需的意图详细信息,请随时将信息添加到https://github.com/k3b/k3b-geoHelper/wiki/Android-Geo-aware-apps

【讨论】:

以上是关于如何从我的应用程序打开来自其他应用程序的特定活动?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用离子3中的特定联系人从其他应用程序打开Whatsapp应用程序?

如何在接收来自服务器的请求时直接打开我的应用活动?

从我自己的 Android 应用程序单击我的 Google 地图活动中的标记时打开浏览器 url

android:我如何从我的应用程序中打开另一个应用程序?

如何使用来自其他活动android的片段打开一个活动

如何从我的应用程序中打开标准的 Google Map 应用程序?