package net.sourceforge.simcpux;
import java.io.File;
import java.net.URL;
import net.sourceforge.simcpux.R;
import net.sourceforge.simcpux.uikit.CameraUtil;
import net.sourceforge.simcpux.uikit.MMAlert;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.SendMessageToWX;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
import com.tencent.mm.sdk.openapi.WXAppExtendObject;
import com.tencent.mm.sdk.openapi.WXEmojiObject;
import com.tencent.mm.sdk.openapi.WXImageObject;
import com.tencent.mm.sdk.openapi.WXMediaMessage;
import com.tencent.mm.sdk.openapi.WXMusicObject;
import com.tencent.mm.sdk.openapi.WXTextObject;
import com.tencent.mm.sdk.openapi.WXVideoObject;
import com.tencent.mm.sdk.openapi.WXWebpageObject;
import com.tencent.mm.sdk.openapi.SendAuth;
public class SendToWXActivity extends Activity {
private static final int THUMB_SIZE = 150;
private static final String SDCARD_ROOT = Environment.getExternalStorageDirectory().getAbsolutePath();
private IWXAPI api;
private static final int MMAlertSelect1 = 0;
private static final int MMAlertSelect2 = 1;
private static final int MMAlertSelect3 = 2;
private CheckBox isTimelineCb;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);
setContentView(R.layout.send_to_wx);
initView();
}
private void initView() {
isTimelineCb = (CheckBox) findViewById(R.id.is_timeline_cb);
isTimelineCb.setChecked(false);
// send to weixin
findViewById(R.id.send_text).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final EditText editor = new EditText(SendToWXActivity.this);
editor.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
editor.setText(R.string.send_text_default);
MMAlert.showAlert(SendToWXActivity.this, "send text", editor, getString(R.string.app_share), getString(R.string.app_cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String text = editor.getText().toString();
if (text == null || text.length() == 0) {
return;
}
// 初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
textObj.text = text;
// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObj;
// 发送文本类型的消息时,title字段不起作用
// msg.title = "Will be ignored";
msg.description = text;
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
// 调用api接口发送数据到微信
api.sendReq(req);
finish();
}
}, null);
}
});
findViewById(R.id.send_img).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_img),
SendToWXActivity.this.getResources().getStringArray(R.array.send_img_item),
null, new MMAlert.OnAlertSelectId(){
@Override
public void onClick(int whichButton) {
switch(whichButton){
case MMAlertSelect1: {
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);
WXImageObject imgObj = new WXImageObject(bmp);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true); // 设置缩略图
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("img");
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);
finish();
break;
}
case MMAlertSelect2: {
String path = SDCARD_ROOT + "/test.png";
File file = new File(path);
if (!file.exists()) {
String tip = SendToWXActivity.this.getString(R.string.send_img_file_not_exist);
Toast.makeText(SendToWXActivity.this, tip + " path = " + path, Toast.LENGTH_LONG).show();
break;
}
WXImageObject imgObj = new WXImageObject();
imgObj.setImagePath(path);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
Bitmap bmp = BitmapFactory.decodeFile(path);
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("img");
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);
finish();
break;
}
case MMAlertSelect3: {
String url = "http://weixin.qq.com/zh_CN/htmledition/images/weixin/weixin_logo0d1938.png";
try{
WXImageObject imgObj = new WXImageObject();
imgObj.imageUrl = url;
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
Bitmap bmp = BitmapFactory.decodeStream(new URL(url).openStream());
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("img");
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);
finish();
} catch(Exception e) {
e.printStackTrace();
}
break;
}
default:
break;
}
}
});
}
});
findViewById(R.id.send_music).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MMAlert.showAlert(SendToWXActivity.this, getString(R.string.send_music),
SendToWXActivity.this.getResources().getStringArray(R.array.send_music_item),
null, new MMAlert.OnAlertSelectId(){
@Override
public void onClick(int whichButton) {
switch(whichButton){
case MMAlertSelect1: {
WXMusicObject music = new WXMusicObject();
//music.musicUrl = "http://www.baidu.com";
music.musicUrl="http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3";
//music.musicUrl="http://120.196.211.49/XlFNM14sois/AKVPrOJ9CBnIN556OrWEuGhZvlDF02p5zIXwrZqLUTti4o6MOJ4g7C6FPXmtlh6vPtgbKQ==/31353278.mp3";
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = music;
msg.title = "
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
wechat_sdk_sample_android (135个子文件)
.classpath 437B
libammsdk.jar 151KB
SendToWXActivity.java 20KB
MMAlert.java 17KB
GetFromWXActivity.java 7KB
Util.java 6KB
WXEntryActivity.java 5KB
CameraUtil.java 4KB
ShowFromWXActivity.java 1KB
AppRegister.java 500B
Constants.java 417B
send_img.jpg 5KB
debug.keystore 1KB
send_music_thumb_backup.png 15KB
send_music_thumb.png 14KB
ic_launcher.png 3KB
btn_style_alert_dialog_special_normal.9.png 2KB
btn_style_alert_dialog_button_normal.9.png 2KB
btn_style_alert_dialog_special_pressed.9.png 2KB
btn_style_alert_dialog_cancel_normal.9.png 2KB
btn_style_alert_dialog_button_pressed.9.png 2KB
mm_edit_normal.9.png 2KB
ic_launcher.png 2KB
mm_title_back_pressed.9.png 2KB
mm_title_back_normal.9.png 2KB
btn_check_on_normal.png 1KB
btn_check_off_normal.png 1KB
btn_check_off_disable.png 1KB
btn_style_one_normal.9.png 1KB
mm_title_back_focused.9.png 1KB
btn_check_on_disable.png 1KB
btn_style_one_pressed.9.png 1KB
btn_style_one_disabled.9.png 1KB
mm_title_btn_pressed.9.png 1KB
mm_title_act_btn_normal.9.png 1024B
mm_edit_focused.9.png 1020B
mm_title_btn_normal.9.png 987B
mm_title_act_btn_disable.9.png 977B
mm_title_act_btn_pressed.9.png 962B
ic_preference_one_pressed.9.png 868B
btn_style_one_focused.9.png 844B
ic_dialog_alert.png 837B
ic_preference_single_pressed.9.png 789B
ic_dialog_long_click.png 779B
ic_preference_one_normal.9.png 774B
mm_title_btn_focused.9.png 699B
mm_title_act_btn_focused.9.png 683B
ic_preference_single_normal.9.png 666B
ic_preference_top_pressed.9.png 604B
ic_preference_top_normal.9.png 568B
ic_preference_last_pressed.9.png 562B
ic_preference_first_pressed.9.png 535B
mm_submenu_normal.png 513B
ic_preference_first_normal.9.png 485B
ic_preference_last_normal.9.png 484B
mm_checkbox_mini_checked.9.png 406B
btn_style_alert_dialog_background.9.png 380B
mm_submenu_pressed.png 263B
mm_title_bg.9.png 263B
ic_preference_pressed.9.png 237B
ic_preference_normal.9.png 233B
mm_trans.png 195B
mm_listitem_pressed.9.png 179B
mm_listitem_disable.9.png 177B
mm_listitem_normal.9.png 173B
mm_checkbox_mini_normal.9.png 164B
.project 850B
project.properties 361B
styles.xml 18KB
strings.xml 6KB
themes.xml 6KB
send_to_wx.xml 3KB
AndroidManifest.xml 2KB
security_image.xml 2KB
get_from_wx.xml 2KB
list_selector_background.xml 2KB
mm_preference.xml 1KB
mm_preference_content_keyvalue.xml 1KB
mm_preference_content_domainmaillist.xml 1KB
entry.xml 1KB
mm_preference_child.xml 1KB
mm_title.xml 1KB
sendrequest_dialog.xml 988B
mm_preference_null.xml 943B
push_up_in.xml 912B
image_button.xml 829B
alert_dialog_menu_list_layout_title.xml 800B
mm_preference_content_domainmail.xml 690B
mm_preference_content_choice.xml 668B
mm_activity.xml 656B
btn_style_one.xml 652B
alert_dialog_menu_layout.xml 644B
mm_preference_self_vuser.xml 636B
webalert.xml 625B
mm_checkbox_btn.xml 622B
alert_dialog_menu_list_layout_cancel.xml 607B
alert_dialog_menu_list_layout_special.xml 606B
alert_dialog_menu_list_layout.xml 605B
dimens.xml 596B
color.xml 571B
共 135 条
- 1
- 2
资源评论
- 豆豆阿三2014-07-28还好 挺不错的
- qq_169403292014-09-29安卓微信API,还是不错滴
day20071010
- 粉丝: 7
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功