- 在友盟后台新建产品,获取Appkey
- 下载社会化分享 SDK(包含分享、登录功能)
- 解压后,把common、share/main下面的所有jar拷贝到工程的lib目录下,所有res资源拷贝到工程的对应目录下,把share/platforms下面所需平台的jar拷贝到工程的lib目录下,res资源拷贝到工程的对应目录下
- 在项目application类中初始化umeng和微信:
public void onCreate() {
super.onCreate();
UMConfigure.init(this,
"xxxxx",//友盟appkey
"umeng",
UMConfigure.DEVICE_TYPE_PHONE,"");
PlatformConfig.setWeixin("xxx",//微信appid
"xxx");//微信AppSecret
}
- 加入权限声明:
<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"/>
如果targetSdkVersion大于22,还需要动态申请权限:
if(Build.VERSION.SDK_INT>=23){
String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,Manifest.permission.WRITE_APN_SETTINGS};
ActivityCompat.requestPermissions(this,mPermissionList,123);
}
- 在包名目录下创建wxapi文件夹,新建一个名为
WXEntryActivity
的activity继承WXCallbackActivity
。
WXCallbackActivity是umeng sdk提供的,WXEntryActivity不需要写任何额外代码
- 配置Android Manifest XML,加入:
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
- 响应微信登录点击按钮:
public void onLogin(View view) {
UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.WEIXIN, new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
Log.e("bp","onStart");
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
Log.e("bp","onComplete");
}
@Override
public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
Log.e("bp","onError");
}
@Override
public void onCancel(SHARE_MEDIA share_media, int i) {
Log.e("bp","onCancel");
}
});
}
网友评论