2013-06-22 41 views
1

我將我的應用程序設置爲接收與這些意圖過濾器和此處理程序的共享意圖。我在共享菜單中看不到它。應用程序未顯示在共享菜單中

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="http"/> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:scheme="https"/> 
</intent-filter> 


Intent intent = getIntent(); 
String action = intent.getAction(); 
String type = intent.getType(); 
if (Intent.ACTION_SEND.equals(action) && type.equals("text/plain")) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
    builder.setTitle(R.string.pick_profile); 
    builder.setItems(getConnProfNames(connectionProfiles), new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      selectedItem = connectionProfiles.get(which); 
      DownloadTask.execute(); 
     } 
    }); 
} 
+0

有沒有這樣的事情共享意圖。應用程序可以使用Intents以不同的動作,類型,臨時演員和數據共享數據。大多數這些應用程序將使用ACTION_SEND,但取決於應用程序,其他參數的差別很大。使用你的意圖過濾器,你只會使用http和https方案來捕獲Intents,而你的代碼不會限制文本/純文本的類型。這一切都取決於「共享菜單」在觸發時的作用,無論您的代碼是否正常工作。 –

+0

具體而言,我試圖處理來自Dolphin Browser的共享鏈接意圖。 – sajattack

回答

0

有沒有這樣的事情共享意圖。應用程序可以使用Intents以不同的動作,類型,臨時演員和數據共享數據。大多數這些應用程序將使用ACTION_SEND,但取決於應用程序,其他參數的差別很大。使用你的意圖過濾器,你只會使用http和https方案來捕獲Intents,而你的代碼不會限制文本/純文本的類型。這一切都取決於「共享菜單」在觸發時的作用,無論您的代碼是否正常工作。

Dolphin瀏覽器用於分享其數據的目的是AFAIK未公開記錄。 我設法「釣」使用下面的過濾器的意圖之一:

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <data android:mimeType="*/*" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

我也設法抓住從像這樣的演員的網址:你是什麼

CharSequence text = intent.getCharSequenceExtra(Intent.EXTRA_TEXT); 

這真的取決於試圖實現你需要的過濾器。如果您試圖抓取URL並加載HTML頁面,那麼我使用的過濾器將完成這項工作。它允許獲取URL,然後您可以顯示頁面,例如在WebView中。

相關問題