Android快速分享文件/文字到QQ/微信
16lz
2021-01-26
一般来说,要想分享文件/文字到微信朋友圈、QQ,都是需要接入微信、QQ的分享sdk;不过也有个快速分享到QQ、微信的小窍门,就是通过action 为
“android.intent.action.SEND”
的Intent。
Talk is cheap. Show me the code.
1、先看看手Q的AndroidManifest.xml,我们可以看到可以接受“android.intent.action.SEND”
的Intent,mimeType可以是图片("image/*")
、视频(“video/*”)
、音频("audio/*")
、文本("text/*")
、各种二进制文件("application/*")
<activity android:configChanges="keyboardHidden|locale|orientation" android:icon="@drawable/name_APKTOOL_DUPLICATENAME_0x7f021750" android:name="cooperation.qlink.QlinkShareJumpActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent"> <intent-filter android:label="@string/name_APKTOOL_DUPLICATENAME_0x7f0c1126"> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> <data android:mimeType="video/*"/> <data android:mimeType="audio/*"/> <data android:mimeType="application/*"/> </intent-filter> <intent-filter android:label="@string/name_APKTOOL_DUPLICATENAME_0x7f0c1126"> <action android:name="android.intent.action.SEND_MULTIPLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> <data android:mimeType="video/*"/> <data android:mimeType="audio/*"/> <data android:mimeType="application/*"/> </intent-filter></activity><activity android:configChanges="keyboardHidden|locale|orientation" android:exported="true" android:icon="@drawable/name_APKTOOL_DUPLICATENAME_0x7f02153d" android:name=".activity.qfileJumpActivity" android:theme="@android:style/Theme.Translucent"> <intent-filter android:label="@string/name_APKTOOL_DUPLICATENAME_0x7f0c00fe"> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> <data android:mimeType="video/*"/> <data android:mimeType="audio/*"/> <data android:mimeType="application/*"/> <data android:mimeType="text/*"/> </intent-filter> <intent-filter android:label="@string/name_APKTOOL_DUPLICATENAME_0x7f0c00fe"> <action android:name="android.intent.action.SEND_MULTIPLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> </intent-filter> </activity>
2、再来看看微信的AndroidManifest.xml, 我们也可以看到有Activity接受action为“android.intent.action.SEND”
的Intent,接受的mimeType类型同上
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:icon="@drawable/icon" android:name="com.tencent.mm.ui.tools.ShareImgUI" android:theme="@style/ab"> <intent-filter android:label="@string/v1"> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> <data android:mimeType="video/*"/> <data android:mimeType="text/*"/> <data android:mimeType="application/*"/> </intent-filter> <intent-filter android:label="@string/v1"> <action android:name="android.intent.action.SEND_MULTIPLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> </intent-filter></activity><activity android:configChanges="keyboardHidden|orientation|screenSize" android:icon="@drawable/b1f" android:name="com.tencent.mm.ui.tools.AddFavoriteUI" android:theme="@style/ab"> <intent-filter android:label="@string/gb"> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> <data android:mimeType="video/*"/> <data android:mimeType="text/*"/> <data android:mimeType="application/*"/> <data android:mimeType="audio/*"/> </intent-filter> <intent-filter android:label="@string/gb"> <action android:name="android.intent.action.SEND_MULTIPLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*"/> </intent-filter></activity>
3、那么,我们想要分享文件到微信/QQ/邮件就可以设置代码如下:
Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));intent.putExtra(Intent.EXTRA_SUBJECT," 图片分享" );// 兼容android 7.0+Uri uri = FileProvider.getUriForFile( getContext(), getContext().getPackageName(), barcodeFile);intent.putExtra(Intent.EXTRA_STREAM, uri);intent.setType("image/*");startActivity(intent);
4、看看效果,完美:
更多相关文章
- Android(安卓)读取资源文件下面的文件
- ubuntu下搭建ecshop
- android 在电脑上显示真机屏幕
- Android(安卓)NDK移植libiconv和libxml2
- Android(安卓)日常开发(48)android.os.FileUriExposedException最
- [图文]将cocos2d-x项目移植到android上
- Android启动流程分析(七) init.rc的解析
- PANIC: Could not open AVD config file:
- Android(安卓)Studio关联SVN配置