package com.yeetou.xinyongkaguanjia.ui; import java.util.List; 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.WXMediaMessage; import com.tencent.mm.sdk.openapi.WXTextObject; import com.yeetou.xinyongkaguanjia.R; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class E4Activity extends AbstractActivity implements OnClickListener { private static final String APP_ID = "wx7b277d5fd684a435"; IWXAPI api = null; private ImageView e4_weibo; private ImageView e4_duanxin; private ImageView e4_weixin; private ImageView e4_pengyou; String text = null; private LinearLayout LinearLayout_Ab_Left_Indicator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_e4); TextView TextView_Ab_Title = (TextView) findViewById(R.id.TextView_Ab_Title); TextView_Ab_Title.setText("分享给朋友"); text = getString(R.string.e4_share_content); api = WXAPIFactory.createWXAPI(this, APP_ID, true); api.registerApp(APP_ID); e4_weibo = (ImageView) findViewById(R.id.e4_weibo); e4_duanxin = (ImageView) findViewById(R.id.e4_duanxin); e4_weixin = (ImageView) findViewById(R.id.e4_weixin); e4_pengyou = (ImageView) findViewById(R.id.e4_pengyou); e4_weibo.setOnClickListener(this); e4_duanxin.setOnClickListener(this); e4_weixin.setOnClickListener(this); e4_pengyou.setOnClickListener(this); LinearLayout_Ab_Left_Indicator = (LinearLayout) findViewById(R.id.LinearLayout_Ab_Left_Indicator); LinearLayout_Ab_Left_Indicator.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); } }); } private void sendWeiXin() { WXTextObject textObj = new WXTextObject(); textObj.text = text; WXMediaMessage msg = new WXMediaMessage(textObj); msg.mediaObject = textObj; msg.description = text; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = String.valueOf(System.currentTimeMillis()); req.message = msg; api.sendReq(req); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.e4_weibo: sendWeibo(); break; case R.id.e4_duanxin: Uri smsToUri = Uri.parse("smsto:"); Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri); // sendIntent.putExtra("address", "123456"); // 电话号码,这行去掉的话,默认就没有电话 sendIntent.putExtra("sms_body", text); sendIntent.setType("vnd.android-dir/mms-sms"); startActivityForResult(sendIntent, 1002); break; case R.id.e4_weixin: sendWeiXin(); break; case R.id.e4_pengyou: sendPengyou(); break; } } private void sendPengyou() { 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 = true ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; // 调用api接口发送数据到微信 api.sendReq(req); } private String buildTransaction(final String type) { return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); } private void sendWeibo() { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/*"); intent.putExtra(Intent.EXTRA_SUBJECT, "分享我的应用"); intent.putExtra(Intent.EXTRA_TEXT, text); intent.putExtra(Intent.EXTRA_TITLE, "分享我的应用"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PackageManager pm = getPackageManager(); List<ResolveInfo> list = pm.queryIntentActivities(intent, 0); List<ResolveInfo> matches = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); String packageName = "com.sina.weibo"; ResolveInfo info = null; for (ResolveInfo each : matches) { String pkgName = each.activityInfo.applicationInfo.packageName; if (packageName.equals(pkgName)) { info = each; break; } } if (info == null) { displayResponse("还没装微博"); return; } else { intent.setClassName(packageName, info.activityInfo.name); } startActivity(intent); } }