android annotations 和 微信分享功能学习笔记
来源:互联网 发布:字符能遍历吗python 编辑:程序博客网 时间:2024/06/09 19:10
android annotations 和微信分享功能笔记
MainActivity
import java.io.ByteArrayOutputStream;import org.androidannotations.annotations.AfterViews;import org.androidannotations.annotations.Click;import org.androidannotations.annotations.EActivity;import org.androidannotations.annotations.ViewById;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.CompressFormat;import android.graphics.BitmapFactory;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import com.tencent.mm.sdk.modelmsg.SendMessageToWX;import com.tencent.mm.sdk.modelmsg.WXAppExtendObject;import com.tencent.mm.sdk.modelmsg.WXImageObject;import com.tencent.mm.sdk.modelmsg.WXMediaMessage;import com.tencent.mm.sdk.modelmsg.WXMusicObject;import com.tencent.mm.sdk.modelmsg.WXTextObject;import com.tencent.mm.sdk.modelmsg.WXVideoObject;import com.tencent.mm.sdk.modelmsg.WXWebpageObject;import com.tencent.mm.sdk.openapi.IWXAPI;import com.tencent.mm.sdk.openapi.WXAPIFactory;//使用 android annotations 注解框架@EActivity(R.layout.activity_main)public class MainActivity extends Activity { // 微信开发平台中申请的APPID private static final String APP_ID = "wx87bdaae4688a2fef"; // 微信API对象 private IWXAPI api; @ViewById(R.id.shareBtnText) Button shareBtnText; @ViewById(R.id.shareBtnImg) Button shareBtnImg; @ViewById(R.id.shareBtnMusic) Button shareBtnMusic; @ViewById(R.id.shareBtnVedio) Button shareBtnVedio; @ViewById(R.id.shareBtnUrl) Button shareBtnUrl; @ViewById(R.id.shareBtnApp) Button shareBtnApp; @ViewById(R.id.sharedToTimelineCheckBox) CheckBox sharedToTimelineCheckBox; @AfterViews public void initView() { // 微信API初始化 api = WXAPIFactory.createWXAPI(this, APP_ID, true); // api.registerApp(APP_ID); } @Click({ R.id.shareBtnText, R.id.shareBtnImg, R.id.shareBtnMusic, R.id.shareBtnVedio, R.id.shareBtnUrl, R.id.shareBtnApp }) void buttonClicked(View v) { Button bt = (Button) v; switch (bt.getId()) { case R.id.shareBtnText: // 分享文本 // 创建微信文本对象 WXTextObject textObj = new WXTextObject(); textObj.text = "HelloWorld."; // 创建微信消息 WXMediaMessage textMsg = new WXMediaMessage(); textMsg.mediaObject = textObj; textMsg.description = "HelloWorld."; // 创建请求 SendMessageToWX.Req textReq = new SendMessageToWX.Req(); // 设置请求类型 textReq.transaction = buildTransaction(null); textReq.message = textMsg; // 设置分享到朋友圈(WXSceneTimeline)还是好友(WXSceneSession),或者收藏(WXSceneFavorite) textReq.scene = sharedToTimelineCheckBox.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 发送请求 api.sendReq(textReq); break; case R.id.shareBtnImg: // 分享图片 // 图片对象 Bitmap imgBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); // 创建微信图片对象 WXImageObject imgObj = new WXImageObject(imgBmp); // 创建微信消息 WXMediaMessage imgMsg = new WXMediaMessage(); imgMsg.mediaObject = imgObj; // 缩略图对象 Bitmap imgthumbBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); // 设置消息的缩略图 imgMsg.thumbData = bmpToByteArray(imgthumbBmp, true); // 创建请求 SendMessageToWX.Req imgReq = new SendMessageToWX.Req(); // 设置请求类型 imgReq.transaction = buildTransaction("img"); imgReq.message = imgMsg; // 设置分享到朋友圈还是好友,或者收藏 imgReq.scene = sharedToTimelineCheckBox.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 发送请求 api.sendReq(imgReq); break; case R.id.shareBtnMusic: // 分享音乐 // 创建微信音乐对象 WXMusicObject music = new WXMusicObject(); music.musicUrl = "http://baidu.com"; // 创建微信消息 WXMediaMessage musicMsg = new WXMediaMessage(); musicMsg.mediaObject = music; musicMsg.title = "music"; musicMsg.description = "The music"; // 创建请求 SendMessageToWX.Req musicReq = new SendMessageToWX.Req(); // 设置请求类型 musicReq.transaction = buildTransaction("music"); musicReq.message = musicMsg; // 设置分享到朋友圈还是好友,或者收藏 musicReq.scene = sharedToTimelineCheckBox.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 发送请求 api.sendReq(musicReq); break; case R.id.shareBtnVedio: // 分享视频 // 创建微信视频对象 WXVideoObject video = new WXVideoObject(); video.videoUrl = "http://baidu.com"; // 创建微信消息 WXMediaMessage vedioMsg = new WXMediaMessage(); vedioMsg.mediaObject = video; vedioMsg.title = "video"; vedioMsg.description = "The video"; // 创建请求 SendMessageToWX.Req videoReq = new SendMessageToWX.Req(); // 设置请求类型 videoReq.transaction = buildTransaction("video"); videoReq.message = vedioMsg; // 设置分享到朋友圈还是好友,或者收藏 videoReq.scene = sharedToTimelineCheckBox.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 发送请求 api.sendReq(videoReq); break; case R.id.shareBtnUrl: // 分享URL // 创建微信URL对象 WXWebpageObject urlObj = new WXWebpageObject(); urlObj.webpageUrl = "http://baidu.com"; // 创建微信消息 WXMediaMessage urlMsg = new WXMediaMessage(); urlMsg.mediaObject = urlObj; urlMsg.title = "btiao"; urlMsg.description = "HelloWorld."; // 缩略图对象 Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); // 设置消息的缩略图 urlMsg.thumbData = bmpToByteArray(thumb, true); // 创建请求 SendMessageToWX.Req urlReq = new SendMessageToWX.Req(); // 设置请求类型 urlReq.transaction = buildTransaction("webpage"); urlReq.message = urlMsg; // 设置分享到朋友圈还是好友,或者收藏 urlReq.scene = sharedToTimelineCheckBox.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 发送请求 api.sendReq(urlReq); break; case R.id.shareBtnApp: // 分享App //微信基础认证,暂时不支持该功能。 // 创建微信App对象 final WXAppExtendObject appdata = new WXAppExtendObject(); // final String path = CameraUtil.getResultPhotoPath(this, data, SDCARD_ROOT + "/tencent/"); // appdata.filePath = path; appdata.extInfo = "this is ext info"; // 创建微信消息 final WXMediaMessage appMsg = new WXMediaMessage(); appMsg.title = "this is title"; appMsg.description = "this is description"; appMsg.mediaObject = appdata; // 创建请求 SendMessageToWX.Req appReq = new SendMessageToWX.Req(); // 设置请求类型 appReq.transaction = buildTransaction("appdata"); appReq.message = appMsg; // 设置分享到朋友圈还是好友,或者收藏 appReq.scene = sharedToTimelineCheckBox.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 发送请求 api.sendReq(appReq); break; } } // 生成唯一的标识 private String buildTransaction(final String type) { return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); } // 图片转换为字节 public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) { ByteArrayOutputStream output = new ByteArrayOutputStream(); bmp.compress(CompressFormat.PNG, 100, output); if (needRecycle) { bmp.recycle(); } byte[] result = output.toByteArray(); try { output.close(); } catch (Exception e) { e.printStackTrace(); } return result; }}
activity_main.xml配置文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.dsmjd.hi2016.MainActivity_" > <CheckBox android:id="@+id/sharedToTimelineCheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="是否分享到朋友圈" tools:ignore="HardcodedText" /> <Button android:id="@+id/shareBtnText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享文字" tools:ignore="HardcodedText" /> <Button android:id="@+id/shareBtnUrl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享链接" tools:ignore="HardcodedText" /> <Button android:id="@+id/shareBtnImg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享图片" tools:ignore="HardcodedText" /> <Button android:id="@+id/shareBtnMusic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享音乐" tools:ignore="HardcodedText" /> <Button android:id="@+id/shareBtnVedio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享视频" tools:ignore="HardcodedText" /> <Button android:id="@+id/shareBtnApp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享APP" tools:ignore="HardcodedText" /></LinearLayout>
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity_" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
0 0
- android annotations 和 微信分享功能学习笔记
- Android微信分享学习笔记
- android微信分享功能
- android 微信分享功能
- 【IOS和Android】Cocos2d-x 集成微信分享功能
- android-----------实现微信登录和分享功能。
- 学习android笔记(7):实现微信和新浪微博分享(全)
- Android 设置微信分享功能
- Android开发_微信分享功能
- Android微信SDK分享功能接入
- Android开发-微信分享功能
- android 同时实现微信分享和微信登录功能
- Android应用同时实现微信分享和微信登录功能
- Android微信分享和邮件分享
- 微信分享功能
- 微信分享功能
- 微信分享功能
- 微信分享功能
- 电脑快捷键大全
- Sphinx在windows下安装使用[支持中文全文检索]
- Android学习历程3-倒计时类的简单介绍
- 串行FLASH数据缓冲区的管理
- RSync实现文件备份同步
- android annotations 和 微信分享功能学习笔记
- spring MVC 配置入门总结(1)
- 使用afinal 中的finalhttp和finalbitmap访问网络资源+finalActivity
- C语言内部强化培训视频教程
- hits 算法
- linux系统tomcat自启动及业务脚本
- js获取当前日期时间“yyyy-MM-dd HH:MM:SS”
- iOS开发 [SY_InformationController respondsToSelector:]: message sent to deallocated崩溃信息
- 蓝牙官方文档解读