Android 学习之如何集成友盟推送

来源:互联网 发布:蛤蟆吃创建不了网络 编辑:程序博客网 时间:2024/05/22 05:33

我是利用Android studio 新建一个空的Android项目。

步骤一  导入第三方库

1.切换Android项目状态为Project状态


2.在main文件下新建 jniLibs文件夹(用来导入PushSDK项目下lib文件中的so文件)

3.在libs文件夹下添加友盟PuskSDK中的 jar 文件,然后全选jar文件 右击选择as librarise就行了


步骤二  在官网新建应用 

1.在http://push.umeng.com/  网页新建应用


2.对应填写你的包名和应用名称


3.创建应用后得到对应的key和serect


步骤三  填写配置文件

1.填写配置文件权限

    <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.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.WAKE_LOCK" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.BROADCAST_PACKAGE_ADDED" />    <uses-permission android:name="android.permission.BROADCAST_PACKAGE_CHANGED" />    <uses-permission android:name="android.permission.BROADCAST_PACKAGE_INSTALL" />    <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REPLACED" />    <uses-permission android:name="android.permission.RESTART_PACKAGES" />    <uses-permission android:name="android.permission.GET_TASKS" />    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

2.填写相关的meta (key和serect从网页中创建的应用上来 注意包名一定要一样)

 <meta-data            android:name="UMENG_APPKEY"            android:value="You UMENG_APPKEY">        </meta-data>        <meta-data            android:name="UMENG_MESSAGE_SECRET"            android:value="You UMENG_MESSAGE_SECRET">        </meta-data>        <meta-data            android:name="UMENG_CHANNEL"            android:value="Channel Id" >        </meta-data>

3.填写相关activity,service,reciver,provider的信息(就是配置应用第三方库中的东西)

<service            android:name="com.taobao.accs.ChannelService"            android:exported="true"            android:process=":channel">            <intent-filter>                <action android:name="com.taobao.accs.intent.action.SERVICE" />            </intent-filter>            <intent-filter>                <action android:name="com.taobao.accs.intent.action.ELECTION" />            </intent-filter>        </service>        <service            android:name="com.taobao.accs.data.MsgDistributeService"            android:exported="true">            <intent-filter>                <action android:name="com.taobao.accs.intent.action.RECEIVE" />            </intent-filter>        </service>        <receiver            android:name="com.taobao.accs.EventReceiver"            android:process=":channel">            <intent-filter>                <action android:name="android.intent.action.BOOT_COMPLETED" />            </intent-filter>            <intent-filter>                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />            </intent-filter>            <intent-filter>                <action android:name="android.intent.action.PACKAGE_REMOVED" />                <data android:scheme="package" />            </intent-filter>            <intent-filter>                <action android:name="android.intent.action.USER_PRESENT" />            </intent-filter>        </receiver>        <receiver            android:name="com.taobao.accs.ServiceReceiver"            android:process=":channel">            <intent-filter>                <action android:name="com.taobao.accs.intent.action.COMMAND" />            </intent-filter>            <intent-filter>                <action android:name="com.taobao.accs.intent.action.START_FROM_AGOO" />            </intent-filter>        </receiver>        <service            android:name="com.taobao.accs.ChannelService$KernelService"            android:process=":channel">        </service>        <service            android:name="org.android.agoo.accs.AgooService"            android:exported="true">            <intent-filter>                <action android:name="com.taobao.accs.intent.action.RECEIVE" />            </intent-filter>        </service>        <service android:name="com.umeng.message.UmengIntentService"            android:exported="true">            <intent-filter>                <action android:name="org.agoo.android.intent.action.RECEIVE" />            </intent-filter>        </service>        <receiver            android:name="com.taobao.agoo.AgooCommondReceiver"            android:exported="true">            <intent-filter>                <action android:name="${applicationId}.intent.action.COMMAND" />            </intent-filter>            <intent-filter>                <action android:name="android.intent.action.PACKAGE_REMOVED" />                <data android:scheme="package" />            </intent-filter>        </receiver>        <receiver            android:name="com.umeng.message.NotificationProxyBroadcastReceiver"            android:exported="false" />        <service            android:name="com.umeng.message.UmengMessageCallbackHandlerService"            android:exported="false">            <intent-filter>                <action android:name="com.umeng.messge.registercallback.action" />            </intent-filter>            <intent-filter>                <action android:name="com.umeng.message.enablecallback.action" />            </intent-filter>            <intent-filter>                <action android:name="com.umeng.message.disablecallback.action" />            </intent-filter>            <intent-filter>                <action android:name="com.umeng.message.message.handler.action" />            </intent-filter>        </service>        <service            android:name="com.umeng.message.UmengDownloadResourceService"            android:exported="false" />        <service            android:name="com.umeng.message.UmengMessageIntentReceiverService"            android:exported="true"            android:process=":channel" >            <intent-filter>                <action android:name="org.android.agoo.client.MessageReceiverService" />            </intent-filter>        </service>        <provider            android:name="com.umeng.message.provider.MessageProvider"            android:authorities="${applicationId}.umeng.message"            android:exported="false">            <grant-uri-permission android:pathPattern=".*" />        </provider>

步骤四  调用相关方法

1.新建base文件夹并在其下新建类BaseActicity 注册调用

2.注意调用方法放到子线程中

public class BaseActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        final PushAgent mPushAgent = PushAgent.getInstance(getBaseContext());        mPushAgent.setDebugMode(true);        mPushAgent.onAppStart();        new Thread(new Runnable() {            @Override            public void run() {                //注册推送服务,每次调用register方法都会回调该接口                mPushAgent.register(new IUmengRegisterCallback() {                    @Override                    public void onSuccess(String deviceToken) {                        //注册成功会返回device token                    }                    @Override                    public void onFailure(String s, String s1) {                    }                });            }        }).start();    }}

步骤五  调试

在调试平台,根据自己的需求来发送自己的推送信息。


0 0
原创粉丝点击