Android系统自带分享
来源:互联网 发布:苹果下载铃声软件 编辑:程序博客网 时间:2024/05/18 00:11
目前Android开发分享功能用的比较多的时SharedSDK和友盟分享,其实Android系统已经提供了分享功能,而且更轻量级,用起来更方便,基本可以实现大部分的分享功能.直接贴上代码
package com.shutter.Utils.shareUitl;import android.app.Activity;import android.content.ComponentName;import android.content.ContentResolver;import android.content.ContentValues;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.provider.MediaStore;import android.widget.Toast;/** * Created by yj on 2015/10/12. */public class ShareUtil { /** *国外社交的分享 * 由于国外的Ins,FB,MS几大app,通过意图过滤得到的要传递发送图片的Activity都只有一个,即分享界面的Activity,故这里只需要包名即可 * @param activity * @param packageName 要分享的国外的社交app(Ins,FB,MS) * @param fileUri 分享图片的Uri */ public static void shareImageForeign(Activity activity,String packageName,Uri fileUri){ Intent mIntent = new Intent(Intent.ACTION_SEND); mIntent.setType("image/*"); mIntent.putExtra(Intent.EXTRA_SUBJECT, "shareImage"); mIntent.setPackage(packageName); mIntent.putExtra(Intent.EXTRA_STREAM, fileUri); try { activity.startActivity(Intent.createChooser(mIntent, activity.getTitle())); } catch (android.content.ActivityNotFoundException e) { Toast.makeText(activity, "To be share,please install this software: " + packageName, Toast.LENGTH_SHORT).show(); } } /** * 国内几大社交的分享 * 由于国内几大社交app(QQ,空间,微信,朋友圈,微博等),通过意图过滤得到的要传递图片的Activity不只一个(例如QQ会出现发送,发送到电脑;微信会出现发送和收藏),故这里还需要制定具体分享 * 界面的全类名,才能实现快速分享 * @param context * @param packageName 要分享的社交app的包名 * @param shareActivityName 分享界面Activity的全类名 * @param fileUri 分享图片的Uri */ public static void shareImageChina(Context context,String packageName, String shareActivityName , Uri fileUri){ Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_STREAM, fileUri); intent.putExtra(Intent.EXTRA_SUBJECT, "shareImage"); intent.putExtra(Intent.EXTRA_TITLE, "图片标题"); intent.setComponent((new ComponentName("packageName", "ActivityName"))); context.startActivity(intent); } /** * 保存视频文件到本地相册,并生成缩略图,避免分享时没有缩略图而显示为黑色 * @param path */ public static void saveSdScan(String path,Context context){// final Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(path, MediaStore.Images.Thumbnails.MICRO_KIND); //生成缩略图 ContentValues localContentValues = new ContentValues(); localContentValues.put("_data", path); localContentValues.put("description", "save video ---"); localContentValues.put("mime_type", "video/mp4"); ContentResolver localContentResolver = context.getContentResolver(); Uri localUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; localContentResolver.insert(localUri, localContentValues);// MediaStore.Images.Media.insertImage(localContentResolver,bitmap,"thumbnail","thumbnail for video"); //这个是给图片添加缩略图 } /** * 国外视频的分享 * 国外app(Ins,FB,MS)支持直接分享视频的 * @param activity * @param packageName * @param fileUri */ public static void shareVideoForeign(Activity activity,String packageName,Uri fileUri){ //保存视频到相册以便分享 saveSdScan(fileUri.getPath(), activity); Intent mIntent = new Intent(Intent.ACTION_SEND); mIntent.setType("video/*"); mIntent.putExtra(Intent.EXTRA_SUBJECT, "shareVideo"); mIntent.setPackage(packageName); mIntent.putExtra(Intent.EXTRA_STREAM, fileUri); try { activity.startActivity(Intent.createChooser(mIntent, activity.getTitle())); } catch (android.content.ActivityNotFoundException e) { Toast.makeText(activity, "To be share,please install this software: " + packageName, Toast.LENGTH_SHORT).show(); } } /** * 国内视频的分享 * 目前国内只支持QQ,微信的直接发送视频,其他的(空间,朋友圈,微博)都需要借助于服务器,需要上传到服务器上,再将Url分享出去 * @param context * @param packageName * @param shareActivityName * @param fileUri */ public static void shareVideoChina(Context context,String packageName, String shareActivityName , Uri fileUri){ Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("video/*"); intent.putExtra(Intent.EXTRA_STREAM, fileUri); intent.putExtra(Intent.EXTRA_SUBJECT, "shareVideo"); intent.putExtra(Intent.EXTRA_TITLE, "视频标题"); intent.setComponent((new ComponentName("packageName", "ActivityName"))); context.startActivity(intent); }}
下面再给出国内和国外几大社交app的包名和类名
"微信", "com.tencent.mm.ui.tools.ShareImgUI", "com.tencent.mm" "朋友圈", "com.tencent.mm.ui.tools.ShareToTimeLineUI", "com.tencent.mm" "qq", "com.tencent.mobileqq.activity.JumpActivity","com.tencent.mobileqq" "qq空间", "com.qzone.ui.operation.QZonePublishMoodActivity","com.qzone" "新浪微博", "com.sina.weibo.EditActivity", "com.sina.weibo" "com.sina.weibog3" "腾讯微博", "com.tencent.WBlog.intentproxy.TencentWeiboIntent","com.tencent.WBlog" "FB" "com.facebook.katana" "MS" "com.instagram.android" "Ins" "com.facebook.orca"
0 0
- Android系统自带分享
- android系统自带的分享功能
- Android 自带的系统分享功能
- 系统自带分享
- Android分享---调用系统自带的分享功能
- 106 系统自带分享
- android 系统自带分享文字+图片到微信朋友圈
- LINE分享android利用系统自带分享实现LINE分享功能
- LINE分享android利用系统自带分享实现LINE分享功能
- android自带分享,浏览器分享
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- android 系统自带分享功能之pdf分享并且打开
- ios 调用系统自带分享
- 安卓 系统自带分享
- IOS系统自带社交分享
- 栈和堆
- 游戏源码开发,时时快乐十分
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- 应用程序崩溃定位查找 (一)
- CUDAExample-0-cdpSimplePrint
- Android系统自带分享
- Cookie—客户端存储数据技术
- 邓紫棋,更让人不禁猜想邓紫棋将成为魅族手机的代言人。
- 自定义代理方法
- 如何看待爱迪生和特斯拉的直流交流电之争——两种模式的企业管理
- Java泛型讲解
- Java注解Annotation
- 栈和堆
- apple设备相关--苹果手机死机了怎么办!?