最近给台湾的客户做LINE集成,登录照着官方源码来就过了,但是发现分享没有示例代码,找了半天发现好像国外的都是通过Intent来进行分享的,所有搜了下如何通过Intent分享开始搞。
第一次分享单张图片发现失败,但是手机系统自身携带的分享确可以,下载了手机系统分享过去的图片后发现图片大小为80k,故应该是图片大小的缘故,压缩过后分享仍失败,后发现Intent携带图片需要用到URI,7.0后的URI是需要适配的,故适配完成之后分享成功。
String linePackageName="jp.naver.line.android"; String lineClassName="jp.naver.line.android.activity.selectchat.SelectChatActivityLaunchActivity"; ComponentName componentName=new ComponentName(linePackageName,lineClassName); Intent shareIntent=new Intent(); shareIntent.setAction(Intent.ACTION_SEND); Uri uri = null; if (Build.VERSION.SDK_INT >= 24) { uri = FileProvider.getUriForFile(ShareCodeActivity.this, "包名", file);//通过FileProvider创建一个content类型的Uri }else { Uri inputUri = Uri.fromFile(file); } shareIntent.putExtra(Intent.EXTRA_STREAM, uri); shareIntent.setType("image/jpeg"); //图片分享 shareIntent.putExtra(Intent.EXTRA_STREAM, uri); //shareIntent.setType("text/plain"); // 纯文本 //shareIntent.putExtra(Intent.EXTRA_SUBJECT, title);//分享的标题 //shareIntent.putExtra(Intent.EXTRA_TEXT, text);//分享内容 shareIntent.setComponent(componentName);//跳到指定APP的Activity startActivity(Intent.createChooser(shareIntent,""));