1.根据个推官方文档正确配置应用(查看官方文档,非常重要的一步。要保证签名和包名的正确)
2.gradle中依赖个推的SDK,此步依然参照个推开发者文档
3.配置网络权限
<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" />
4.声明个推的广播(将此处的GETUI_APP_ID替换为自己应用的appid)
<!--个推的广播注册-->
<receiver
android:name=".MessageReceiver"
android:enabled="true"
android:exported="true"
android:permission="1000">
<intent-filter>
<action android:name="com.igexin.sdk.action.${GETUI_APP_ID}" />
</intent-filter>
</receiver>
5.绑定clientId即可(此代码可以参考官方demo)
public class MessageReceiver extends BroadcastReceiver {
private static final String TAG = MessageReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null)
return;
Bundle bundle = intent.getExtras();
// 判断当前消息的意图
switch (bundle.getInt(PushConsts.CMD_ACTION)) {
case PushConsts.GET_CLIENTID: {
Log.i(TAG, "GET_CLIENTID:" + bundle.toString());
// 当Id初始化的时候
// 获取设备Id
onClientInit(bundle.getString("clientid"));
break;
}
case PushConsts.GET_MSG_DATA: {
// 常规消息送达
byte[] payload = bundle.getByteArray("payload");
if (payload != null) {
String message = new String(payload);
Log.i(TAG, "GET_MSG_DATA:" + message);
onMessageArrived(message);
}
break;
}
default:
Log.i(TAG, "OTHER:" + bundle.toString());
break;
}
}