2017-01-24 37 views
0

我正在使用全局共享意圖共享一些文本如下;如何忽略用戶使用全局共享設置的默認共享應用程序目的

Intent intent = new Intent(); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); 
     intent.setAction(Intent.ACTION_SEND); 
     intent.setType("text/plain"); 
     intent.putExtra(Intent.EXTRA_TEXT, "Some Text"); 
     startActivity(intent); 

的問題是我要顯示所有可用的應用程序與即使用戶設置的默認應用共享文本,如下圖所示enter image description here

回答

0

有關使用ShareActionProvider

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/menu_item_share" 
     app:showAsAction="ifRoom" 
     android:title="Share" 
     app:actionProviderClass="android.support.v7.widget.ShareActionProvider" /> 
    ... 
</menu> 
如何

它不應該要求Just Once和「總是」選項。您可以在「菜單選項」中或任何您想要的位置添加此菜單。

0

有一種方法可以使用PackageManager來清除自己的缺陷活動,但無法清除其他活動。

因此,作爲解決方法,您可以爲此創建自己的用戶界面。例如放在BottomSheet數據,你明白我的方式:

PackageManager manager = context.getPackageManager(); 
List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0); 
if (infos.size() > 0) { 
    //do UI stuff 
} else { 
    //No Application can handle your intent 
} 

它可以看起來像爲:

enter image description here

相關問題