package net.sourceforge.simcpux;
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.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
import com.tencent.mm.sdk.openapi.WXAppExtendObject;
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.GetMessageFromWX;
public class GetFromWXActivity extends Activity {
private static final int THUMB_SIZE = 150;
private IWXAPI api;
private Bundle bundle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// acquire wxapi
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);
bundle = getIntent().getExtras();
setContentView(R.layout.get_from_wx);
initView();
}
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
bundle = intent.getExtras();
}
private void initView() {
findViewById(R.id.get_text).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final EditText editor = new EditText(GetFromWXActivity.this);
editor.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
editor.setText(R.string.share_text_default);
MMAlert.showAlert(GetFromWXActivity.this, "share 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(textObj);
msg.description = text;
// 构造一个Resp
GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
// 将req的transaction设置到resp对象中,其中bundle为微信传递过来的intent所带的内容,通过getExtras方法获取
resp.transaction = getTransaction();
resp.message = msg;
// 调用api接口响应数据到微信
api.sendResp(resp);
finish();
}
}, null);
}
});
findViewById(R.id.get_img).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// respond with image message
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);
GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
resp.transaction = getTransaction();
resp.message = msg;
api.sendResp(resp);
finish();
}
});
findViewById(R.id.get_music).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WXMusicObject music = new WXMusicObject();
music.musicUrl = "http://www.baidu.com";
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = music;
msg.title = "Music Title";
msg.description = "Music Album";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);
GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
resp.transaction = getTransaction();
resp.message = msg;
api.sendResp(resp);
finish();
}
});
findViewById(R.id.get_video).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WXVideoObject video = new WXVideoObject();
video.videoUrl = "http://www.baidu.com";
WXMediaMessage msg = new WXMediaMessage(video);
msg.title = "Video Title";
msg.description = "Video Description";
GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
resp.transaction = getTransaction();
resp.message = msg;
api.sendResp(resp);
finish();
}
});
findViewById(R.id.get_webpage).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "http://www.baidu.com";
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "WebPage Title";
msg.description = "WebPage Description";
GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
resp.transaction = getTransaction();
resp.message = msg;
api.sendResp(resp);
finish();
}
});
findViewById(R.id.get_appdata).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// respond with appdata by taking photo
CameraUtil.takePhoto(GetFromWXActivity.this, "/mnt/sdcard/tencent/", "get_appdata", 0x100);
}
});
}
// @Override
// protected int getLayoutId() {
// return R.layout.get_from_wx;
// }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 0x100: {
if (resultCode == RESULT_OK) {
final WXAppExtendObject appdata = new WXAppExtendObject();
final String path = CameraUtil.getResultPhotoPath(this, data, "/mnt/sdcard/tencent/");
appdata.filePath = path;
appdata.extInfo = "this is ext info";
final WXMediaMessage msg = new WXMediaMessage();
msg.setThumbImage(Util.extractThumbNail(path, 150, 150, true));
msg.title = "this is title";
msg.description = "this is description";
msg.mediaObject = appdata;
GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp();
resp.transaction = getTransaction();
resp.message = msg;
api.sendResp(resp);
finish();
}
break;
}
default:
break;
}
}
private String getTransaction() {
final GetMessageFromWX.Req req = new GetMessageFromWX.Req(bundle);
return req.transaction;
}
}