从URL启动自定义应用程序

时间:2012-10-15 08:28:09

标签: android android-intent

您好我已经尝试过从网址打开自定义应用,但我失败了,我有这个链接打开自定义应用click here

根据我编码的链接,我的编码在

之下

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中收到此链接。当我收到邮件并尝试点击此链接时,浏览器列表不会显示,并且应用程序也会直接在默认浏览器中启动:(

2 个答案:

答案 0 :(得分:3)

最后我找到了答案

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

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

不知道为什么,但在 ANDROID PHONE --- NOT ---在桌面计算机上

,它被认为是这样的
  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

   <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>

答案 1 :(得分:0)

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

<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />