美文网首页
微信7.0之后分享多张图片的变相实现

微信7.0之后分享多张图片的变相实现

作者: 涂山小狐妖 | 来源:发表于2019-01-19 17:03 被阅读0次

    先上代码:

     public void callSystemShare(String imgUrl) {
            Intent intent = new Intent();
            /*
            *  //微信手动发朋友圈的界面
            intent.setComponent(new ComponentName("com.tencent.mm", 
                    "com.tencent.mm.ui.tools.ShareScreenToTimeLineUI"));
                    */
            Uri uri;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                uri = getImageContentUri(this, new File(imgUrl));
                StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
                StrictMode.setVmPolicy(builder.build());
            } else {
                uri = Uri.fromFile(new File(imgUrl));
            }
            intent.addCategory(Intent.CATEGORY_DEFAULT);
            intent.setAction(Intent.ACTION_VIEW);
            intent.setDataAndType(uri, "image/*");
            this.startActivity(Intent.createChooser(intent, ""));
        }
    
        private Uri getImageContentUri(Context context, File imageFile) {
            String filePath = imageFile.getAbsolutePath();
            Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    new String[]{MediaStore.Images.Media._ID}, MediaStore.Images.Media.DATA + "=? ",
                    new String[]{filePath}, null);
            Uri uri = null;
    
            if (cursor != null) {
                if (cursor.moveToFirst()) {
                    int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
                    Uri baseUri = Uri.parse("content://media/external/images/media");
                    uri = Uri.withAppendedPath(baseUri, "" + id);
                }
    
                cursor.close();
            }
    
            if (uri == null) {
                ContentValues values = new ContentValues();
                values.put(MediaStore.Images.Media.DATA, filePath);
                uri = context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
            }
    
            return uri;
    

    思路:分享n张图片,先将n-1张图片添加到相册,然后带1张图片跳转到微信手动发朋友圈的界面,提示用户去相册选取。

    demo 链接

    相关文章

      网友评论

          本文标题:微信7.0之后分享多张图片的变相实现

          本文链接:https://www.haomeiwen.com/subject/cgszdqtx.html