Android 無需申請key直接呼叫微信/QQ/微博分享
無需申請key直接呼叫微信/QQ/微博分享
支援單圖,多圖,文字,單圖+文字,多圖+文字
具體還需要看情況,自己試一下
package com.yaphetzhao.library_shareanywhere;
import android.Manifest;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;
import android.view.View;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import java.util.ArrayList;
import java.util.Collections;
/**
* Created by yaphet
* on 2018/3/21.
*/
public class ShareAnyWhereUtil {
/**
* bitmapToUri
*
* @param context
* @param bitmap
* @return
*/
public static Uri bitmapToUri(Activity context, Bitmap bitmap) {
if (!checkPermission(context)) {
return null;
}
return Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, null, null));
}
/**
* drawableToUri
*
* @param context
* @param drawable
* @return
*/
public static Uri drawableToUri(Activity context, Drawable drawable) {
if (!checkPermission(context)) {
return null;
}
return Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), ((BitmapDrawable) drawable).getBitmap(), null, null));
}
/**
* viewToUri
*
* @param context
* @param view
* @return
*/
public static Uri viewToUri(Activity context, View view) {
if (!checkPermission(context)) {
return null;
}
view.buildDrawingCache();
return Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), view.getDrawingCache(), null, null));
}
/**
* createUriList
*
* @param uris
* @return
*/
public static ArrayList<Uri> createUriList(Uri... uris) {
ArrayList<Uri> result = new ArrayList<>();
Collections.addAll(result, uris);
return result;
}
/**
* 分享到Weichat
*
* @param context
* @param uris
* @param desc
*/
public static void shareWeichat(Activity context, ArrayList<Uri> uris, String desc) {
if (!checkPermission(context)) {
return;
}
Intent intent = new Intent();
ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");
intent.setComponent(comp);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
intent.putExtra("Kdescription", desc);
context.startActivity(intent);
}
/**
* 分享到新浪微博
*
* @param context
* @param uris
* @param desc
*/
public static void shareWeibo(Activity context, ArrayList<Uri> uris, String desc) {
if (!checkPermission(context)) {
return;
}
Intent intent = new Intent();
intent.setPackage("com.sina.weibo");
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
intent.putExtra("Kdescription", desc);
context.startActivity(intent);
}
/**
* 分享到QQ
*
* @param context
* @param uris
* @param desc
*/
public static void shareQQ(Activity context, ArrayList<Uri> uris, String desc) {
if (!checkPermission(context)) {
return;
}
Intent intent = new Intent();
ComponentName comp = new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.JumpActivity");
intent.setComponent(comp);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
intent.putExtra("Kdescription", desc);
context.startActivity(intent);
}
/**
* 許可權檢查
*
* @param context
* @return
*/
private static boolean checkPermission(Activity context) {
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String[] mPermissionList = new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE};
ActivityCompat.requestPermissions(context, mPermissionList, 1);
return false;
}
}
return true;
}
}
相關文章
- Android 仿微信, QQ 裁剪Android
- 封裝QQ、微信、微博的第三方登入和分享封裝
- 文章詳情頁面需要分享到第三方,包括qq、qq空間、微博、微信。
- 自定義QQ和微信分享卡片
- js在微信、微博、QQ、Safari喚起App的解決方案JSAPP
- android微信分享、微信支付的一些坑Android
- 申請微信支付詳細流程(最新2018)
- 微信小程式賬號申請註冊教程微信小程式
- Flutter Notes | Android 借殼分享微信FlutterAndroid
- 【網頁登入】QQ 登入、微信登入、微博登入、GitHub 登入網頁Github
- 微信商家收款碼推廣代理怎麼申請?
- 微信域名檢測 微信域名檢測官方介面的呼叫程式碼分享
- 微信分享
- Flutter 仿微信/微博九宮格Flutter
- 微信轉賬24小時到賬可以申請退款嗎?微信轉賬退回的方法
- 新浪微博分享不跳轉
- 微信小程式仿微信, QQ 向左滑動刪除操作。微信小程式
- 【公益線上自習室】不連麥,無微信群,無qq群
- Android 微信分享後留在微信,沒有回撥的問題解決方案Android
- 微信團隊原創分享:Android版微信後臺保活實戰分享(程式保活篇)Android
- 如何設計 QQ、微信、微博、Github 等等,第三方賬號登陸 ?(附表設計)Github
- 微信小程式-仿QQ音樂微信小程式
- Android 微信支付 微信是否安裝判斷Android
- 淺析微信支付:申請退款、退款回撥介面、查詢退款
- 微信分享 - 開荒
- 微信語音分享
- 微信小程式開發系列六:微信框架API的呼叫微信小程式框架API
- 微信或QQ遮蔽域名,爆紅域名如何在微信開啟,如何進行微信域名防封?
- 免費呼叫微信推送介面
- .Net微信網頁開發之使用微信JS-SDK呼叫微信掃一掃功能網頁JS
- 微信小程式開放外掛功能,無需重複開發!微信小程式
- 企業微信sdk呼叫,企業微信好友收發訊息
- Android Studio微信頁面Android
- 用 mpvue 寫個【微博-青銅版】微信小程式Vue微信小程式
- 新浪微博app如何去喚起跳轉微信小程式APP微信小程式
- 微信JSSDK遇見的坑--vue微信自定義分享JSVue
- 實現微信分享功能
- VUE專案微信分享Vue