2012-09-04 45 views
2

當用戶長時間觸摸網絡鏈接(標準android功能)時,我希望我的服務可作爲Share page的默認選項之一訪問。這是我在清單文件中寫的:使用意向過濾器使我的服務可訪問

<service android:name=".ShareLink" 
      android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.SEND" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="text/plain" /> 
    </intent-filter> 
</service> 

但它仍然沒有顯示。我究竟做錯了什麼?附:當我對活動做同樣的事情時 - 它工作正常。

回答

6

這是不可能的,你必須寫一個虛擬的活動來做到這一點。

這是因爲,ResolverActivity,顯示名稱或選擇相應的組件,以推出通過查詢僅匹配Activities與意向API PackageManager.queryIntentActivities

+0

等待,我怎麼做我的行動,然後實際上啓動整個應用程序? – Dennis

+3

使用上面的intent過濾器添加一個活動,如果它的一個小作業在oncreate中執行並在Oncreate中調用finish()。如果它是一個更大的工作,開始活動的服務,並再次調用完成()Oncreate本身 – nandeesh

+1

@丹尼斯:一個活動不必有一個用戶界面。你可以加載一個活動,並做你的東西。 – RvdK

0

這應做到:

<intent-filter 
    android:label="Open Using My Service"> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="http" /> 
</intent-filter> 
+2

不工作是獲取列表。 。 。 – Dennis

相關問題