【问题标题】:Android Intent-filter for GEO-URI用于 GEO-URI 的 Android 意图过滤器
【发布时间】:2010-12-06 17:09:39
【问题描述】:

我尝试编写一个活动来替代谷歌地图。 通过 google-maps 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 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 地图,但没有启动我的应用程序的选项):

final String uri = "geo:" + lat + "," + lng;
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)));

【问题讨论】:

  • 如何在应用中解析 geo uri 以获取位置数据?

标签: android intentfilter


【解决方案1】:

试试

<intent-filter android:priority="0">
    <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"/>
</intent-filter>

【讨论】:

  • 优先级已过时
【解决方案2】:

添加多个方案的正确方法:

        <intent-filter>
            <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"/>
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data android:scheme="google.navigation"/>
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data
                android:host="maps.google.com"
                android:scheme="https"/>
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data
                android:host="maps.google.com"
                android:scheme="http"/>
        </intent-filter>

【讨论】:

  • "maps.google.com" on http 和 https 对我不起作用,任何已知的问题,有一个带有 6.0.1 最新 android 的 s7 ......只是我的应用被触发了......
猜你喜欢
  • 1970-01-01
  • 2014-08-19
  • 2011-04-12
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 2015-04-08
  • 2017-05-30
  • 1970-01-01
相关资源
最近更新 更多