我尝试编写一个活动,作为谷歌地图的替代品。当通过谷歌地图的URL调用它时,它可以完美地工作:
<activity android:name="DataActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="maps.google.com" />
</intent-filter>
</activity>
但是出于某些原因,当使用“geo” URI 启动 Intent 时,它并没有显示出来。
我的 Activity:
<activity android:name="DataActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="geo" android:host="*" />
</intent-filter>
</activity>
调用者(这将启动Google Maps,但不会启动我的应用程序):
final String uri = "geo:" + lat + "," + lng;
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)));