}
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架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
所以:贵在坚持!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!