最近在做微信分享相关功能,微信官方提供以下5种分享功能(文字类型分享示例、图片类型分享示例、音乐类型分享示例、视频类型分享示例、网页类型分享示例),官网上有相关demo代码,网址:https://open.weixin.qq.com/,点击”资源中心“。
可以发现,并没有关于文件分享相关介绍,网上的相关代码比较少,最后查看的微信SDK帮助文档,发现了”WXFileObject“这个类(SDK帮助文档中有关于这个类的详细介绍,网址:http://dev.wechatapp.com/document/sdk-en/android/com/tencent/mm/sdk/openapi/WXFileObject.html),将文件转换成字节数组,赋值给“fileData”即可。
以下是相关代码:
1.文件分享:
private void ShareFileToWeiXin() {
WXFileObject fileObj = new WXFileObject();
fileObj.fileData = WXUtil.inputStreamToByte(ALBUM_PATH+OKFileName);//文件路径
fileObj.filePath = ALBUM_PATH + OKFileName ;
//使用媒体消息分享
WXMediaMessage msg = new WXMediaMessage(fileObj);
msg.title = "title";
//发送请求
SendMessageToWX.Req req = new SendMessageToWX.Req();
//创建唯一标识
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
wxapi.sendReq(req);
}
2.文件转换成byte数组:
/**
* 将输入的流转换为byte数组
* @param is 输入的流
* @return byte数组
*/
public static byte[] inputStreamToByte(String path)
{
try {
FileInputStream fis = new FileInputStream(path);
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
int ch;
while ((ch = fis.read()) != -1) {
bytestream.write(ch);
}
byte imgdata[] = bytestream.toByteArray();
bytestream.close();
return imgdata;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
以上就是关于Android文件分享的相关代码,欢迎提出相关建议。