Android實(shí)現(xiàn)分享圖片碴里,文字,vcard給自己的app
android.intent.action.SEND
在manifest中過濾意圖讓自己的app出現(xiàn)在分享列表中
圖片:
要想實(shí)現(xiàn)這個功能現(xiàn)在manifest文件中添加想要獲取分享的類型:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
獲取分享的單個圖片
<!--share img-->
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
這個是獲取分享的文字
<!-- share text-->
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
獲取分享的多組圖片
<!--share imgs -->
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
獲取分享的vcard 電話簿 單個的
<!-- share vcard-->
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/x-vcard" />
</intent-filter>
</activity>
然后你的應(yīng)用就會出現(xiàn)在分享列表中了畅买。
在activity中獲取intent拿到分享的數(shù)據(jù)
getIntent()
給大家分享一個庫并闲,(我自己寫的(嘿嘿嘿))细睡。對著幾種分享進(jìn)行了封裝谷羞,使用很簡單,只要在要展示分享內(nèi)容的activit中執(zhí)行一個方法就行了。
ShareToMe.handleShareToMe(this, getIntent(), new ShareToMe.HandleListener() {
@Override
public void handleType(String type) {}
@Override
public void handleContent(BaseShareData shareData) {}
@Override
public void handleError(String e) {}
}
具體使用
ShareToMe.handleShareToMe(this, getIntent(), new ShareToMe.HandleListener() {
/**
*
* @param type Original Sharing Type image/* ,text/plain ,text/x-vcard<p/>
*/
@Override
public void handleType(String type) {
Log.d("Dboy", "type =>" + type);
}
/**
* @param shareData 處理分享數(shù)據(jù)的實(shí)體基類
*/
@Override
public void handleContent(BaseShareData shareData) {
Log.d("Dboy", "data =>" + shareData.toString());
mTextView.setText(shareData.toString());
if (shareData.isMultipleImagesData()) {
ShareMultipleImagesData shareMultipleImagesData = shareData.getMultipleImagesData();
mBaseQuickAdapter.addData(shareMultipleImagesData.getImgPath());
} else if (shareData.isImageData()) {
ShareImageData shareImageData = shareData.getImageData();
viewById.setVisibility(View.VISIBLE);
String path = shareImageData.getPath();
Glide.with(getApplicationContext()).load(path).into(viewById);
} else if (shareData.isTextData()){
ShareTextData textData = shareData.getTextData();
} else if (shareData.isVCardData()) {
ShareVCardData vCardData = shareData.getVCardData();
}
}
/**
* @param e error
*/
@Override
public void handleError(String e) {
Log.d("Dboy", "error =>" + e);
}
});
具體使用湃缎,內(nèi)部實(shí)現(xiàn)呢犀填,看一下demo,和源碼嗓违。
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.Dboy233:ShareToMe:3.0'
}
GitHub地址https://github.com/Dboy233/ShareToMe
效果圖
Gif_20190914_123916.gif
Gif_20190914_124033.gif