LINE分享android利用系统自带分享实现LINE分享功能
16lz
2021-01-26
android利用系统自带分享实现分享功能之LINE分享
最近公司向海外发展,提出了一个国外主流的社交APP分享需求。原来我使用的是第三方分享工具,但是太鸡肋,国内的APP支持的还是不错的,但是国外支持的不行。大家用外国社交APP比较少,所以也偷懒了吧~
拿到LINE分享图片这个需求时,也是开始用第三方分享,但是经过我的试验只能分享文字,网上也找不到LINE分享的官方文档。所以只能自己想办法。
实现的方法也是比较奇葩了。话不多说,下面贴代码!
/** * 分享功能 * LINE * ComponentName(String pkg, String cls) * line的包名,line的接收资料的类名--》 MainFist里面 */ public void shareLine() { ComponentName cn = new ComponentName("jp.naver.line.android" , "jp.naver.line.android.activity.selectchat.SelectChatActivity"); Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(mActivity.getContentResolver(), bitmap, null,null)); shareIntent.putExtra(Intent.EXTRA_STREAM, uri); shareIntent.setType("image/jpeg"); //图片分享 //intent.setType("text/plain"); // 纯文本 //intent.putExtra(Intent.EXTRA_SUBJECT, "分享的标题"); //intent.putExtra(Intent.EXTRA_TEXT, "分享的内容"); shareIntent.setComponent(cn);//跳到指定APP的Activity mActivity.startActivity(Intent.createChooser(shareIntent,"")); }
首先介绍ComponentName类。 ComponentName与Intent同位于**Android.content包下,我们从Android官方文档中可以看到,这个类主要用来定义可见一个应用程序组件,例如:Activity,Service,BroadcastReceiver或者ContentProvider。
new ComponentName(,);括号内填入line的包名和line的接收资料的类名。关于包名大家都是可以百度到的(也可在后面的步骤里寻找),但是接收我们穿过去数据的类名是基本上找不到的,所以就得反编译LINE的APK了(反编译的话请自行度娘
= = 。)。中间省略反编译一大段。。。好了,我们反编译结束后,找到LINE的AndroidManifest.xml文件,在里面搜索
里面会有它接收的数据类型**
<intent-filter android:label="@string/app_name" > <action android:name="android.intent.action.SEND" /> <data android:mimeType="image/*" /> <data android:mimeType="video/*" /> <data android:mimeType="text/plain" />
图上红框内的就是LINE接收数据的类型了。复制下来填入new
ComponentName();中,然后再你需要分享的BUTTON里执行shareLine();这个方法就行了。
更多相关文章
- android实现发送短信的功能
- Android(安卓)分享功能之 微信 图片分享
- 手机游戏怎样不再卡顿 猎豹清理大师5.6手机加速功能实测
- 【Android初学者】Eclipse 资源管理器,文件夹功能区讲解
- Android实现社交应用中的评论和回复功能
- Android(安卓)蓝牙对战五子棋项目实现(含人机对战功能)
- Android实现iPhone晃动撤销输入功能 Android仿微信摇一摇功能
- android 集成系统分享和第三方分享案例
- Android中直播视频技术探究之---桌面屏幕视频数据源采集功能分析