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社交登入授權、分享SDK,支援微信、微博和QQAndroid
- 突破Android微信微博瀏覽器限制直接拉起應Android瀏覽器
- 封裝QQ、微信、微博的第三方登入和分享封裝
- 分享到QQ空間、新浪微博、騰訊微博的程式碼!(收藏)
- 自定義QQ和微信分享卡片
- 微信分享 分享朋友圈 分享騰訊微博 發給朋友
- Android 仿微信, QQ 裁剪Android
- 奧運會期間無線電需申請 手機筆記本不受影響筆記
- js在微信、微博、QQ、Safari喚起App的解決方案JSAPP
- JS 在微信、微博、QQ、Safari 喚起 App 的解決方案JSAPP
- 微信重磅 | 小程式開放個人申請
- 微信公共號申請圖文詳解
- 【原創】重灌Windows系統後Android studio無需重灌,直接遷移WindowsAndroid
- 微信小程式賬號申請註冊教程微信小程式
- 申請微信公眾號開發web appWebAPP
- Android開發在Activity外申請許可權呼叫相機開啟相簿Android
- 淘寶、微博、微信的 Android 圖片放置策略Android
- 微信商家收款碼推廣代理怎麼申請?
- android強制申請許可權Android
- Android在App中直接展示String的KeyAndroidAPP
- 【網頁登入】QQ 登入、微信登入、微博登入、GitHub 登入網頁Github
- 無需作業系統直接執行 Python 程式碼作業系統Python
- 怎樣在百度雲申請一個伺服器以及申請微信公眾號伺服器
- 根據Android studio生成的keystore.jks檔案申請高德地圖key碼 invalid user scodeAndroid地圖
- 在安卓上,微信公眾號無法分享到QQ的解決辦法之一安卓
- 申請微信支付詳細流程(最新2018)
- 巧用Android多程式,微信,微博等主流App都在用AndroidAPP
- 【開源技術分享】無需流媒體服務,讓瀏覽器直接播放rtsp/rtmp的神器:EasyMedia瀏覽器
- 【乾貨分享】最新WHQL徽標認證申請流程
- 從申請到呼叫:全國快遞物流查詢 API 使用教程API
- 微信分享網頁連結至朋友、朋友圈、微博程式碼網頁
- Android分享---呼叫系統自帶的分享功能Android
- android微信分享、微信支付的一些坑Android
- android studio 打包簽名apk,完成微信和qq的的第三方分享功能AndroidAPK
- 申請無數個iTunes 帳號的簡易方法
- 成功申請百度站點LOGO經驗分享Go
- 成功申請百度官網標誌經驗分享
- 淺析微信支付:申請退款、退款回撥介面、查詢退款