本講主要介紹如何在自己的應用中實現分享功能,同時介紹如何將自己的程式加入分享列表。
比如有一張圖片,想要分享到校內上...看看吧。
本次我們就是要做這樣的效果,同時把自己的應用也加入到分享列表中。
調出"共用方式"的代碼如下:
Intent intent=new Intent(Intent.ACTION_SEND);</p><p> intent.setType("text/plain");<br /> intent.putExtra(Intent.EXTRA_SUBJECT, "分享");<br /> intent.putExtra(Intent.EXTRA_TEXT, "好東西,與您分享!");<br /> startActivity(Intent.createChooser(intent, getTitle()));
如何讓自己的應用也加入這個分享列表呢?
答案其實也很簡單,只需在AndroidManifest.xml設定檔中activity標籤之間加入以下代碼:
<intent-filter><br /><action android:name="android.intent.action.SEND"><br /></action><br /><category android:name="android.intent.category.DEFAULT"><br /></category><br /><data android:mimeType="text/plain"><br /></data><br /></intent-filter>
注意,以上程式最好在真機上測試,模擬器上看不出效果!
另外,有的同學可能不想把這些應用都顯示出來,比如指向要簡訊、郵件,那麼可以通過先擷取分享列表,然後自己過濾的方式來實現。
擷取分享列表代碼:
public List<ResolveInfo> getShareTargets(){<br /> List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();<br /> Intent intent=new Intent(Intent.ACTION_SEND,null);<br /> intent.addCategory(Intent.CATEGORY_DEFAULT);<br /> intent.setType("text/plain");<br /> PackageManager pm=this.getPackageManager();<br /> mApps=pm.queryIntentActivities(intent,PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);</p><p> return mApps;<br /> }