2012-01-23 90 views
3

我想獲得一個URL來打開我編寫的自定義應用程序,但意圖過濾器似乎沒有工作。我已經看過十幾個似乎提供「解決方案」的線程,但對我來說這並不好。意圖過濾器無法打開自定義應用程序

我需要從二維碼掃描的行動打開我的應用程序。因此,我不在任何瀏覽器內點擊任何鏈接。我只是打開我的QR掃描儀,掃描QR碼,並想要啓動我的應用程序,而不是打開默認的Web瀏覽器。 QR掃描儀的默認操作是在Web瀏覽器中打開URI。

的manifest.xml的是這樣的:

<activity 
     android:name=".Main" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <data android:scheme="http" android:host="tinysb.com" android:path="/ecard/" /> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 

    </activity> 

我的QR碼點http://tinysb.com/ecard/所以我在尋找的東西,如果該鏈接被任何應用中遇到的啓動,而不是瀏覽器我的應用程序。目前,瀏覽器啓動,我甚至沒有選擇我掃描QR碼後該怎麼做。目前,我沒有從Web服務器傳遞任何東西,所以我只需要它啓動我的應用程序而不傳遞任何東西。

因爲這一切都是從QR掃描器發起的,所以沒有任何活動可以編碼來攔截URI。

很多帖子都說過,設置上面的android:scheme應該可以做到,但它根本不適合我。

任何幫助將不勝感激。

+0

我問的是不可能的還是我說的不好? – user1114380

+0

如果您單擊瀏覽器中的鏈接,您的代碼是否可以正常工作? 掃描帶有YouTube網址的QR碼會提示我打開YouTube應用 - 所以這是可能的。 –

回答

3

問題可能是您正在使用的QR碼掃描儀。應用程序可以指定一個應用程序來打開url,而不是讓android intent選擇器處理它。您是否安裝了多個瀏覽器,並提示您選擇其中一個?

以下意圖過濾器爲我工作:

<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="getamen.com" android:scheme="http" android:pathPrefix="/topics"/> 
</intent-filter> 

您可以嘗試採用了android:pathPrefix = 「/電子賀卡」 或添加BROWSABLE類別。

相關問題