从 Google 地图向带有地理信息的 Android 应用发送 Intent
Posted
技术标签:
【中文标题】从 Google 地图向带有地理信息的 Android 应用发送 Intent【英文标题】:Sending an Intent from Google Maps to an Android app with geo information 【发布时间】:2019-04-13 12:05:30 【问题描述】:我想从 Google 地图向我正在开发的 android 应用发送 Intent,其中将包括地理信息(纬度、经度等)。
我知道它需要设置一个意图过滤器,但是到目前为止我唯一的工作是纯文本/文本过滤器:
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
然而,这只会给我这样的文字描述:
899 Green St, San Francisco, CA 94133, https://goo.gl/maps/R4A82MNvUpA2
我已经尝试过以下方法,但是没有成功(意图甚至没有在 Google 地图中注册):
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="geo" />
</intent-filter>
有人知道怎么做吗?我正在使用 Android 9 (Pie)。
【问题讨论】:
什么时候发送意图? 当分享按钮被按下时 【参考方案1】:我遇到了类似的问题,我找到了办法。
使用地理编码获取位置数据:
https://maps.googleapis.com/maps/api/geocode/json?address=899+Green+St,+San+Francisco,+CA+94133&key=your_key
您将获得 lat 和 lng 以及一堆其他数据:
"results": [
"address_components": [
"long_name": "899",
"short_name": "899",
"types": [
"street_number"
]
,
"long_name": "Green Street",
"short_name": "Green St",
"types": [
"route"
]
,
"long_name": "Russian Hill",
"short_name": "Russian Hill",
"types": [
"neighborhood",
"political"
]
,
"long_name": "San Francisco",
"short_name": "SF",
"types": [
"locality",
"political"
]
,
"long_name": "San Francisco County",
"short_name": "San Francisco County",
"types": [
"administrative_area_level_2",
"political"
]
,
"long_name": "California",
"short_name": "CA",
"types": [
"administrative_area_level_1",
"political"
]
,
"long_name": "United States",
"short_name": "US",
"types": [
"country",
"political"
]
,
"long_name": "94133",
"short_name": "94133",
"types": [
"postal_code"
]
],
"formatted_address": "899 Green St, San Francisco, CA 94133, USA",
"geometry":
"bounds":
"northeast":
"lat": 37.7989435,
"lng": -122.4128121
,
"southwest":
"lat": 37.7982939,
"lng": -122.4138552
,
"location":
"lat": 37.7988047,
"lng": -122.4131897
,
"location_type": "ROOFTOP",
"viewport":
"northeast":
"lat": 37.79996768029149,
"lng": -122.4119846697085
,
"southwest":
"lat": 37.7972697197085,
"lng": -122.4146826302915
,
"place_id": "ChIJrd0tGO6AhYARxCp3djZ6Ka0",
"types": [
"premise"
]
],
"status": "OK"
【讨论】:
关于地点 ID 的概述:developers.google.com/places/place-id 嘿@Sean 如果宽限期结束并且他没有接受我的回答,那么赏金会发生什么。??以上是关于从 Google 地图向带有地理信息的 Android 应用发送 Intent的主要内容,如果未能解决你的问题,请参考以下文章