当前位置:   article > 正文

Android不经过第三方\官方SDK直接使用Intent快捷实现QQ微信分享_android 不是有第三方sdk分享网页链接

android 不是有第三方sdk分享网页链接

现在,越来越多的APP需要分享的功能了,但是,我们却需要去每个方向平台那里下载对应的SDK以及申请APPID,这无疑是很麻烦的,虽然有些第三方分享平台(例如mob)已经集成了各种SDK,但是,还是需要到各个分享平台申请APPID,特别是学生做的一些Demo,想拿个APPID的申请还是蛮麻烦的,因此,可以考虑一下系统自带的分享,这样就简单多了。(●'◡'●)(无需下载额外SDK,无需申请APPID)

其实也是蛮简单的,就几行代码,不够要注意一下,分享到QQ、微信,一次只能分享文本或图片,不能同时文本或图片一起分享,除非。。发两次分享。。。

分享文本代码:

  1. Intent intent = new Intent("android.intent.action.SEND");  
  2. intent.setType("text/plain");  
  3. intent.putExtra(Intent.EXTRA_SUBJECT, "消息标题");  
  4. intent.putExtra(Intent.EXTRA_TEXT, "消息内容");  
  5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  6. intent.setComponent(new ComponentName("包名""分享页面名"));//若是分享到QQ,可将包名改为com.tencent.mobileqq,分享页面名改为com.tencent.mobileqq.activity.JumpActivity  
  7. context.startActivity(intent);  
  1. Intent intent = new Intent("android.intent.action.SEND");
  2. intent.setType("text/plain");
  3. intent.putExtra(Intent.EXTRA_SUBJECT, "消息标题");
  4. intent.putExtra(Intent.EXTRA_TEXT, "消息内容");
  5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  6. intent.setComponent(new ComponentName("包名", "分享页面名"));//若是分享到QQ,可将包名改为com.tencent.mobileqq,分享页面名改为com.tencent.mobileqq.activity.JumpActivity
  7. context.startActivity(intent);

其实,分享图片代码都是一样的,区别是在于如何将图片转换为uri,为了方便大家区分,就写出了两种:

分享图片代码(图片为项目中固定图片):

首先,在AndroidShareSDK/AndroidManifest.xml中添加权限:

  1. <!-- 对SD卡进行写的权限 -->  
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  1. <!-- 对SD卡进行写的权限 -->
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  1. Intent intent = new Intent("android.intent.action.SEND");  
  2. intent.setType("image/png");  
  3. //将项目图片转换为uri  
  4. BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(R.drawable.white);  
  5. Bitmap bt = bd.getBitmap();  
  6. final Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bt, nullnull));  
  7. intent.putExtra(Intent.EXTRA_STREAM, uri);  
  8. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  9. intent.setComponent(new ComponentName("包名""分享页面名"));
  10. //若是分享到QQ,可将包名改为com.tencent.mobileqq,分享页面名改为com.tencent.mobileqq.activity.JumpActivity  
  11. //若是分享到微信,可以将包名改为com.tencent.mm , 分享的页面改为 com.tencent.mm.ui.tools.ShareImgUI
  12. context.startActivity(intent);  
  1. Intent intent = new Intent("android.intent.action.SEND");
  2. intent.setType("image/png");
  3. //将项目图片转换为uri
  4. BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(R.drawable.white);
  5. Bitmap bt = bd.getBitmap();
  6. final Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bt, null, null));
  7. intent.putExtra(Intent.EXTRA_STREAM, uri);
  8. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  9. intent.setComponent(new ComponentName("包名", "分享页面名"));//若是分享到QQ,可将包名改为com.tencent.mobileqq,分享页面名改为com.tencent.mobileqq.activity.JumpActivity
  10. context.startActivity(intent);

分享图片代码(图片为手机本地图片):

  1. Intent intent = new Intent("android.intent.action.SEND");  
  2. intent.setType("image/png");  
  3. File f = new File("图片路径");  
  4. intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));  
  5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  6. intent.setComponent(new ComponentName("包名""分享页面名"));//若是分享到QQ,可将包名改为com.tencent.mobileqq,分享页面名改为com.tencent.mobileqq.activity.JumpActivity  
  7. context.startActivity(intent);  
  1. Intent intent = new Intent("android.intent.action.SEND");
  2. intent.setType("image/png");
  3. File f = new File("图片路径");
  4. intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
  5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  6. intent.setComponent(new ComponentName("包名", "分享页面名"));//若是分享到QQ,可将包名改为com.tencent.mobileqq,分享页面名改为com.tencent.mobileqq.activity.JumpActivity
  7. context.startActivity(intent);


大致分享代码就如上所述了,当然,假如本地没有相应的APP,运行这些代码是会报错的,因此,还需要判断本地是否存在相应的APP再进行分享。具体可以看看这篇文章:[Android]判断本地是否存在某个APP


当然,我自己也写了一个Demo方便大家测试使用:








本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/235816
推荐阅读
相关标签
  

闽ICP备14008679号