0

嗨,我已经尝试了很多从 url 打开自定义应用程序,但我失败了,我有这个链接来打开自定义应用程序点击这里

根据我已经完成编码的链接,我的编码如下

AndroidManifest.xml 文件....

     <application
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <uses-library android:name="com.google.android.maps" />

    <activity
        android:name=".AnimatedScreen"
        android:label="Last Alert Pro"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

     <activity
        android:name=".MapInfo"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <activity
        android:name=".MapInfo"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <data android:scheme="my.lastalertpro.scheme" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>
    </activity>

现在在浏览器中的编码部分html链接如下所示

    String linkForAndroid = "my.lastalertpro.scheme//" + lon + "/" + lat + "/" + alt;

现在我在 Java 部分中获取数据的编码是

    Uri data = getIntent().getData();
    String scheme = data.getScheme(); // "http"

    if (scheme != null) {
    String host = data.getHost(); // "my.lastalertpro.scheme"
    List<String> params = data.getPathSegments();
     try {
    lon = Double.parseDouble(params.get(0)); // longitude
    } catch (Exception e) {
    lon = 0.0;
        }

现在的问题是我在 gmail 中获得了这个链接。当我收到邮件并尝试单击此链接时,浏览器列表未显示,并且应用程序直接在默认浏览器中启动:(

4

2 回答 2

3

最后我找到了答案

如果您在 gmail 中发送以下链接...

      String linkForAndroid = "my.lastalertpro.scheme//" + lon + "/" + lat + "/" + alt;

不知道为什么,但在ANDROID PHONE ---NOT--- ON DESKTOP COMPUTER中被认为是这样的

  in mail if you got link and click on this the link will be looking like 

  http://my.lastalertpro.scheme/70.77188993/22.28305819/96+m.

所以你必须像这样在 AndroidManifest.xml 文件中传递意图过滤器

   <intent-filter>
      <data android:scheme="http" android:host="my.lastalertpro.scheme" />
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
   </intent-filter>
于 2012-10-15T09:48:34.007 回答
0

尝试添加下面给定的标签以及 action_view

<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
于 2012-10-15T08:54:01.937 回答