Android 原生(和微信)分享

本文介绍了如何在Android应用中实现微信分享功能,包括分享链接、图片和网页,以及强调了面试中客户端开发知识点的重要性,提醒开发者保持持续学习和系统性知识积累。
摘要由CSDN通过智能技术生成

}

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) {

e.printStackTrace();

}

Bitmap bitmap = null;

try {

HttpURLConnection conn = (HttpURLConnection) imageurl.openConnection();

conn.setDoInput(true);

conn.connect();

InputStream is = conn.getInputStream();

bitmap = BitmapFactory.decodeStream(is);

is.close();

} catch (IOException e) {

e.printStackTrace();

}

return bitmap;

}

/**

  • 获取分享封面byte数组 我们这边取的是软件启动icon

  • @return

总结

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

Android大厂面试真题全套解析

2017-2020字节跳动Android面试真题解析PDF
然而Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

所以:贵在坚持!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值