如何从GoogleMaps应用获取位置并在自己的应用中使用它?

时间:2015-11-26 10:21:39

标签: android google-maps android-intent

我尝试从GoogleMaps应用中检索目标位置并在我自己的应用中使用它,但到目前为止,我找不到任何有关如何操作的文档。

有关更详细的说明:如果您启动Google地图应用并长按地图上的任意位置,则会在该位置设置标记。如果您点按该标记,则会显示该位置的详细信息。除此之外,还有一个" SHARE"这些细节中的按钮。点击该按钮后,将显示一个能够接受共享位置的应用列表。我希望我的应用程序出现在那里!

我想:由于此信息将作为意图发送,我需要将我的应用注册为适当意图的意图过滤器。但我需要听取什么意图?

在清单中,它看起来像这样:

<activity android:name="My Activity">
    <intent-filter android:label="My App">
        <!-- What goes here? -->
    </intent-filter>
</activity>

一旦我得到了这个,我希望我的应用程序出现在上面提到的列表中。下一步是处理接收的数据。那么,我从意图中得到的数据是什么样的? 是否有任何默认API来处理这些数据?

感谢任何帮助。我知道我不能提供很多关于&#34;到目前为止我尝试了什么的细节&#34;但是我真的找不到能帮助我的API描述。

1 个答案:

答案 0 :(得分:1)

查看http://developer.android.com/training/sharing/receive.html

你需要:

  1. 在清单中更新活动的意图过滤器

    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    
  2. 向您的活动添加代码以处理意图

    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();
    
    if (Intent.ACTION_SEND.equals(action) && type != null && "text/plain".equals(type)) {
        String text = intent.getStringExtra(Intent.EXTRA_TEXT);
        // Do whatever you want with the text
    }