ShareActionProvider爲設備上的每個兼容應用程序提供共享。我想指定哪些應用程序我想允許共享,例如只有twitter和gmail。僅添加特定的應用程序以共享actionprovider
我該怎麼做?
ShareActionProvider爲設備上的每個兼容應用程序提供共享。我想指定哪些應用程序我想允許共享,例如只有twitter和gmail。僅添加特定的應用程序以共享actionprovider
我該怎麼做?
谷歌不建議你分享到特定的應用程序,因爲有各種不同的Twitter客戶端 - 最好讓人們選擇他們想分享的地方。
但是,下面的代碼會在按鈕按鈕上向twitter發送消息「hello twitter」。
String message = "hello Twitter";
try {
//try to open the official twitter app
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(
android.content.Intent.EXTRA_SUBJECT, "Subject");
sharingIntent.putExtra(Intent.EXTRA_TEXT, message);
sharingIntent.setPackage("com.twitter.android");
startActivity(sharingIntent);
} catch (Exception e) {
//fallback on opening an internet browser
Log.e("Danielle", "exception=" + e.toString());
Intent i = new Intent();
i.putExtra(Intent.EXTRA_TEXT, message);
i.setAction(Intent.ACTION_VIEW);
i.setData(Uri
.parse("https://mobile.twitter.com/compose/tweet"));
startActivity(i);
}
希望有幫助。
如果你只使用彈出窗口,那麼dacoinminster在這個問題How to filter specific apps for ACTION_SEND intent (and set a different text for each app)的答案將做到這一點。
但是,如果您特別希望它是一個actionprovider下拉列表,我還沒有找到這個解決方案。
This Works。但我想在shareactionprovider中有多個項目。我試圖添加多個共享意圖,但它不起作用。可能嗎? – TrtG
哦,所以你想要彈出包含幾個項目,如只是Facebook和Twitter?我不確定如果沒有製作自己的彈出窗口,並且想要分享的每個應用都有一個按鈕,那麼您還需要知道每個要共享的應用的軟件包名稱。如果這有道理? – Danielle
是的,這很有道理,謝謝。 – TrtG