Intent chooser = Intent.createChooser(intent, “”);
if (intent.resolveActivity(activity.getPackageManager()) != null) {
activity.startActivityForResult(chooser,101);
}
}
/**
-
原生分享视频
-
@param file 本地视频文件
-
@param activity
*/
public static void shareVideo(File file, Activity activity) {
Intent intent = new Intent(Intent.ACTION_SEND);
Uri fileUri;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
fileUri = FileProvider.getUriForFile(activity, getAppPackageName(App.context) + “.fileprovider”, file);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
fileUri = Uri.fromFile(file);
}
intent.putExtra(Intent.EXTRA_STREAM, fileUri);
intent.setType(“video/*”);
Intent chooser = Intent.createChooser(intent, “”);
if (intent.resolveActivity(activity.getPackageManager()) != null) {
activity.startActivityForResult(chooser,101);
}
}
public static String getAppPackageName(Context context) {
String packageName = “”;
try {
packageName = context.getPackageName();
} catch (Exception e) {
e.printStackTrace();
}
return packageName;
}
}
微信分享内容
public class WXUtil {
/**
-
检查是否安装微信
-
@param context
-
@return
*/
public static boolean isWeixinAvilible(Context context) {
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
List pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
if (pn.equals(“com.tencent.mm”)) {
return true;
}
}
}
return false;
}
private static final int IMAGE_SIZE = 32768;//微信分享图片大小限制
/**
- 用户分享链接
*/
public static volatile String shareUrl = “”;
/**
-
微信分享
-
@param friendsCircle true:朋友圈
-
@param title 分享标题
-
@param desc 分享描述
*/
public static void share(final IWXAPI iwxapi, final Activity activity, final boolean friendsCircle, final String title, final String desc, final String bookUrl) {
if (!isWeixinAvilible(App.context)) {
ToastUtil.showShortToast(activity, “请先安装微信”);
return;
}
if (shareUrl == null) {
ToastUtil.showShortToast(activity, “分享失败”);
return;
}
new Thread(new Runnable() {
@Override
public void run() {
final Bitmap bitmap = returnBitMap(bookUrl);
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
WXWebpageObject webPage = new WXWebpageObject();
webPage.webpageUrl = shareUrl;//分享url
WXMediaMessage msg = new WXMediaMessage(webPage);
msg.title = title;
msg.description = desc;
msg.thumbData = getThumbData(bitmap);//封面图片byte数组
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = friendsCircle ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
iwxapi.sendReq(req);
}
});
}
}).start();
}
private static Bitmap returnBitMap(final String url) {
URL imageurl = null;
try {
imageurl = new URL(url);
} catch (MalformedURLException e) {
Android开发除了flutter还有什么是必须掌握的吗?
相信大多数从事Android开发的朋友们越来越发现,找工作越来越难了,面试的要求越来越高了
除了基础扎实的java知识,数据结构算法,设计模式还要求会底层源码,NDK技术,性能调优,还有会些小程序和跨平台,比如说flutter,以思维脑图的方式展示在下图;
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
相信大多数从事Android开发的朋友们越来越发现,找工作越来越难了,面试的要求越来越高了
除了基础扎实的java知识,数据结构算法,设计模式还要求会底层源码,NDK技术,性能调优,还有会些小程序和跨平台,比如说flutter,以思维脑图的方式展示在下图;
[外链图片转存中…(img-toOv0Yoy-1725651195095)]
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0