本文介绍了OS X系统上,Android接入微信分享的流程。
注册账户
首先,需要到微信开放平台上注册账号,并创建应用,这里主要需要注意两点:
packageName:应用包名
sign:签名,一个32位的MD5值
签名这个,需要用到一个签名工具,将其安装到手机上,输入应用的包名即可。
待审核过后,可以拿到应用的两个值:
APP_ID:关键的值,用于微信校验
APP_SECRET:密钥,分享的时候不需要用
导入SDK
下载微信开放平台SDK,并将其中的:
libammssdk.jar
放到libs目录下,并将其添加到Build Path中。
配置AndroidManifest.xml
在AndroidManifest.xml中添加权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
创建鉴权Receiver:
<receiver
android:name=".AppRegister"
android:permission="com.tencent.mm.plugin.permission.SEND" >
<intent-filter>
<action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />
</intent-filter>
</receiver>
创建微信分享的Activity
<activity
android:name=".SendToWXActivity"
android:label="@string/app_name"
android:theme="@style/MMTheme.Basic"/>
创建微信回调的Activity
<activity
android:name=".wxapi.WXEntryActivity"
android:label="@string/app_name"
android:exported="true"
android:launchMode="singleTop">
</activity>
这里,注意exported属性必须为true。
实现鉴权Receiver
public class AppRegister extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final IWXAPI api = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信
api.registerApp(Constants.APP_ID);
}
}
实现微信分享Activity
public class SendToWXActivity extends Activity {
private Button myButton = null;
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.send_to_wx);
api = WXAPIFactory.createWXAPI(this, Enum.APP_ID, false);
myButton = (Button)findViewById(R.id.button1);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
String text = "kobe";
textObj.text = text;
// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObj;
msg.description = text;
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
// 调用api接口发送数据到微信
api.sendReq(req);
finish();
}
});
}
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}
}
实现微信回调Activity
注意,需要在项目包下创建一个子包,并命名为wxapi,在该包中创建WXEntryActivity。
1 | public class WXEntryActivity extends Activity implements IWXAPIEventHandler { |