2013-07-31 24 views
3

我想對瀏覽器中的一個特定的URL我的應用程序攔截。以下是我在清單代碼:Android的意圖過濾<data>工作不正常

<activity 
      android:name="com.myactivity.RootActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </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="http" /> 
       <data android:host="subdomian.maindomain.com" /> 

      </intent-filter> 
     </activity> 

它目前工作正常,當我打開鏈接http://subdomain.maindomain.com/,一個對話框出現,上面有我的上市活動。

,但是當我在意向過濾器添加android:path像下面,它停止工作,它甚至不能簡單的URL不帶路徑的工作。

<activity 
      android:name="com.myactivity.RootActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </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="http" /> 
       <data android:host="subdomian.maindomain.com" /> 
       <data android:path="myPath" /> 

      </intent-filter> 
     </activity> 

我在這裏做錯了什麼?

回答

2

我測試你說使用這些鏈接,其工作對我來說

<data android:scheme="http" /> 
<data android:host="developer.android.com" /> 
<data android:path="/guide/topics/manifest/data-element.html"/> 

,我用的目的是

Intent browserIntent = new Intent(
    Intent.ACTION_VIEW, 
    Uri.parse("http://developer.android.com/guide/topics/manifest/data-element.html")); 
startActivity(browserIntent); 

android:path,你給它的主機URL後必須匹配什麼上班 ? 您可以指定您使用的是哪個網址? 閱讀this鏈接,幫助