信鸽推送使用

一、去官网下载信鸽sdk http://xg.qq.com/xg/ctr_index/download

二、将sdk集成到自己Android项目中:

1.将信鸽 SDK目录下的libs目录所有文件拷贝到工程的libs(或lib)目录下,注意,libs目录下包含android-support-v4.jar,如果build.gradle已添加此包的依赖则不用导入此包,否则会报如下错误:Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2

2.导入so库,在module的build.gradle文件中指定lib库目录

sourceSets {//目录指向配置
        main {
            jniLibs.srcDirs = ['libs']//指定lib库目录
        }

    }
3.在信鸽官网中进行注册,并创建自己的应用,得到APP的AccessId和AccessKey。
4.打开Androidmanifest.xml,添加配置,可仿照sdk中的官方demo进行配置,示例如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.czy.myapplication">

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>

    <!-- 【必须】 信鸽SDK所需权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.RESTART_PACKAGES" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <!-- 【可选】 信鸽SDK所需权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BATTERY_STATS" />

    <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".activity.MainActivity"
            android:theme="@style/AppTheme.NoActionBar"
            android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
            android:screenOrientation="portrait">
            <!-- 自定义搜索视图-->
            <meta-data android:name="android.app.searchable"
                       android:resource="@xml/searchable" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
        </activity>
        <!-- android:configChanges="orientation|screenSize"-->
        <activity
            android:name=".activity.PlayActivity"
            android:label="@string/title_activity_main2"
            android:configChanges="orientation|screenSize"
            android:theme="@style/AppTheme.NoActionBar"></activity>

        <!-- 【必须】 (2.30及以上版新增)展示通知的activity -->
        <activity
            android:name="com.tencent.android.tpush.XGPushActivity"
            android:theme="@android:style/Theme.Translucent"
            android:exported="false" >
            <intent-filter>
                <!-- 若使用AndroidStudio,请设置android:name="android.intent.action"-->
                <!--<action android:name="" />-->
                <action android:name="android.intent.action" />
            </intent-filter>
        </activity>

        <!-- 【必须】 信鸽receiver广播接收 -->
        <receiver
            android:name="com.tencent.android.tpush.XGPushReceiver"
            android:process=":xg_service_v3" >
            <intent-filter android:priority="0x7fffffff" >

                <!-- 【必须】 信鸽SDK的内部广播 -->
                <action android:name="com.tencent.android.tpush.action.SDK" />
                <action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" />
                <!-- 【必须】 系统广播:网络切换 -->
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

                <!-- 【可选】 系统广播:开屏 -->
                <action android:name="android.intent.action.USER_PRESENT" />

                <!-- 【可选】 一些常用的系统广播,增强信鸽service的复活机会,请根据需要选择。当然,你也可以添加APP自定义的一些广播让启动service -->
                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
                <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
            </intent-filter>
            <!-- 【可选】 usb相关的系统广播,增强信鸽service的复活机会,请根据需要添加 -->
            <intent-filter android:priority="0x7fffffff" >
                <action android:name="android.intent.action.MEDIA_UNMOUNTED" />
                <action android:name="android.intent.action.MEDIA_REMOVED" />
                <action android:name="android.intent.action.MEDIA_CHECKING" />
                <action android:name="android.intent.action.MEDIA_EJECT" />

                <data android:scheme="file" />
            </intent-filter>
        </receiver>
        <!-- 【必须】 信鸽service -->
        <service
            android:name="com.tencent.android.tpush.service.XGPushServiceV3"
            android:exported="true"
            android:persistent="true"
            android:process=":xg_service_v3" />

        <!-- 【必须】 增强xg_service存活率  -->
        <service
            android:name="com.tencent.android.tpush.service.XGDaemonService"
            android:process=":xg_service_v3" />

        <!-- 【可选】APP实现的Receiver,用于接收消息透传和操作结果的回调,请根据需要添加 -->
        <!-- YOUR_PACKAGE_PATH.CustomPushReceiver需要改为自己的Receiver: -->
        <!--<receiver android:name="com.qq.xgdemo.receiver.MessageReceiver"-->
                  <!--android:exported="true" >-->
            <!--<intent-filter>-->
                <!--<!– 接收消息透传 –>-->
                <!--<action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" />-->
                <!--<!– 监听注册、反注册、设置/删除标签、通知被点击等处理结果 –>-->
                <!--<action android:name="com.tencent.android.tpush.action.FEEDBACK" />-->
            <!--</intent-filter>-->
        <!--</receiver>-->

        <!-- 【必须】 【注意】authorities修改为 包名.AUTH_XGPUSH, 如demo的包名为:com.qq.xgdemo-->
        <provider
            android:name="com.tencent.android.tpush.XGPushProvider"
            android:authorities="com.example.czy.myapplication.AUTH_XGPUSH"
            android:exported="true"
            />

        <!-- 【必须】 【注意】authorities修改为 包名.TPUSH_PROVIDER, 如demo的包名为:com.qq.xgdemo-->
        <provider
            android:name="com.tencent.android.tpush.SettingsContentProvider"
            android:authorities="com.example.czy.myapplication.TPUSH_PROVIDER"
            android:exported="false" />

        <!-- 【必须】 【注意】authorities修改为 包名.TENCENT.MID.V3, 如demo的包名为:com.qq.xgdemo-->
        <provider
            android:name="com.tencent.mid.api.MidProvider"
            android:authorities="com.example.czy.myapplication.TENCENT.MID.V3"
            android:exported="true" >
        </provider>

        <!-- 【必须】 请将YOUR_ACCESS_ID修改为APP的AccessId,“21”开头的10位数字,中间没空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_ID"
            android:value="2100253994" />
        <!-- 【必须】 请将YOUR_ACCESS_KEY修改为APP的AccessKey,“A”开头的12位字符串,中间没空格 -->
        <meta-data
            android:name="XG_V2_ACCESS_KEY"
            android:value="ARA8EM8689SZ" />

    </application>

</manifest>


5.在代码中启动并注册App:

完成工程配置后,打开工程的主Activity,在其onCreate(Bundle savedInstanceState)重载方法内,添加以下代码,完成信鸽服务的启动与APP注册过程。

// 开启logcat输出,方便debug,发布时请关闭
        // XGPushConfig.enableDebug(this, true);
        // 如果需要知道注册是否成功,请使用registerPush(getApplicationContext(), XGIOperateCallback)带callback版本
        // 如果需要绑定账号,请使用registerPush(getApplicationContext(),account)版本
        // 具体可参考详细的开发指南
        // 传递的参数为ApplicationContext
        Context context = getApplicationContext();
//        XGPushManager.registerPush(context);
        XGPushManager.registerPush(context, new XGIOperateCallback()
        {
            @Override
            public void onSuccess(Object data, int flag)
            {
                Log.w(Constants.LogTag,
                        "+++ register push sucess. token:" + data);
            }

            @Override
            public void onFail(Object data, int errCode, String msg)
            {
                Log.w(Constants.LogTag,
                        "+++ register push fail. token:" + data
                                + ", errCode:" + errCode + ",msg:"
                                + msg);
            }
        });

        // 2.36(不包括)之前的版本需要调用以下2行代码
        Intent service = new Intent(context, XGPushServiceV3.class);
        context.startService(service);


        // 其它常用的API:
        // 绑定账号(别名)注册:registerPush(context,account)或registerPush(context,account, XGIOperateCallback),其中account为APP账号,可以为任意字符串(qq、openid或任意第三方),业务方一定要注意终端与后台保持一致。
        // 取消绑定账号(别名):registerPush(context,"*"),即account="*"为取消绑定,解绑后,该针对该账号的推送将失效
        // 反注册(不再接收消息):unregisterPush(context)
        // 设置标签:setTag(context, tagName)
        // 删除标签:deleteTag(context, tagName)

然后,即可运行项目看是否集成成功。

三、在信鸽后台创建通知进行推送,如果手机能收到通知,则表示信鸽集成成功。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值