十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文实例为大家分享了android实现分享图片到朋友圈功能的具体代码,供大家参考,具体内容如下

在Android7.0中,系统对scheme为file://的uri进行了限制,所以通过这种uri来进行分享的一些接口就不能用了,比如使用代码来调用分享朋友圈的接口。
此时就得使用其他的URI scheme来代替 file://,比如MediaStore的 content://。直接上代码:
private static boolean checkInstallation(Context context, String packageName) {
try {
context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
public static void shareToWeChat(View view, Context context) {
// TODO: 2015/12/13 将需要分享到微信的图片准备好
try {
if (!checkInstallation(context, "com.tencent.mm")) {
SnackBarUtil.show(view, R.string.share_no_wechat);
return;
}
Intent intent = new Intent();
//分享精确到微信的页面,朋友圈页面,或者选择好友分享页面
ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");
intent.setComponent(comp);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
// intent.setType("text/plain");
//添加Uri图片地址
// String msg=String.format(getString(R.string.share_content), getString(R.string.app_name), getLatestWeekStatistics() + "");
String msg = context.getString(R.string.share_content);
intent.putExtra("Kdescription", msg);
ArrayList imageUris = new ArrayList();
// TODO: 2016/3/8 根据不同图片来设置分享
File dir = context.getExternalFilesDir(null);
if (dir == null || dir.getAbsolutePath().equals("")) {
dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
}
File pic = new File(dir, "bigbang.jpg");
pic.deleteOnExit();
BitmapDrawable bitmapDrawable;
if (Build.VERSION.SDK_INT < 22) {
bitmapDrawable = (BitmapDrawable) context.getResources().getDrawable(R.mipmap.bannar);
} else {
bitmapDrawable = (BitmapDrawable) context.getDrawable(R.mipmap.bannar);
}
try {
bitmapDrawable.getBitmap().compress(Bitmap.CompressFormat.JPEG, 75, new FileOutputStream(pic));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
imageUris.add(Uri.fromFile(pic));
}else {
//修复微信在7.0崩溃的问题
Uri uri =Uri.parse(android.provider.MediaStore.Images.Media.insertImage(context.getContentResolver(), pic.getAbsolutePath(), "bigbang.jpg", null));
imageUris.add(uri);
}
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
((Activity) context).startActivityForResult(intent, 1000);
}catch (Throwable e){
SnackBarUtil.show(view,R.string.share_error);
}