30分钟搞定极光sdk安卓客户端接入

2023-05-16

1、注册成为极光开发者,极光开发者平台官方网站:https://www.jiguang.cn/


2、登录极光开发者平台,进入开发者服务,创建应用。


填写相关信息,应用icon,应用名称。

创建成功,点击"设置",会查看到应用详细信息,这里,我们需要用到的有AppKey,Master Secret等。


3、下载客户端SDK资源文件,下载地址:https://www.jiguang.cn/downloads/sdk/android,这里选择下载Android SDK。解压之后,文件结构如下图:


4、新建Android Application项目。在项目根路径下新建libs文件夹,并将下载的sdk解压,将libs目录下的jcore-android-1.2.1.jar和jpush-android-3.1.3.jar放入libs目录下,会自动加入到类路径下。


5、配置AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx.hello"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="24"
        android:targetSdkVersion="27" />

    <!-- permission -->
    <permission 
        android:name="com.xxx.hello.permission.JPUSH_MESSAGE"
        android:protectionLevel="signature" />
    <!-- uses-permission -->
    <uses-permission android:name="com.xxx.hello.permission.JPUSH_MESSAGE"/>
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service 
            android:name="cn.jpush.android.service.PushService"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTER"/>
                <action android:name="cn.jpush.android.intent.REPORT"/>
                <action android:name="cn.jpush.android.intent.PushService"/>
                <action android:name="cn.jpush.android.intent.PUSH_TIME"/>
            </intent-filter>
        </service>
        <provider 
            android:authorities="com.xxx.hello.DataProvider"
            android:name="cn.jpush.android.service.DataProvider"
            android:exported="true"/>
        <service
             android:name="cn.jpush.android.service.DaemonService"
             android:enabled="true"
             android:exported="true">
             <intent-filter >
                 <action android:name="cn.jpush.android.intent.DaemonService" />
                 <category android:name="com.xxx.hello"/>
             </intent-filter>
         </service>
         <provider
               android:authorities="com.xxx.hello.DownloadProvider"
               android:name="cn.jpush.android.service.DownloadProvider"
               android:exported="true"
           />
          <receiver
            android:name="cn.jpush.android.service.PushReceiver"
            android:enabled="true" >
          <intent-filter android:priority="1000">
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
                <category android:name="com.xxx.hello"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
            <!-- Optional -->
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>
        
          <activity
            android:name="cn.jpush.android.ui.PushActivity"
            android:configChanges="orientation|keyboardHidden"
            android:theme="@android:style/Theme.NoTitleBar"
            android:exported="false" >
            <intent-filter>
                <action android:name="cn.jpush.android.ui.PushActivity" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.xxx.hello" />
            </intent-filter>
        </activity>
        
          <activity
            android:name="cn.jpush.android.ui.PopWinActivity"
            android:configChanges="orientation|keyboardHidden"
            android:exported="false"
            android:theme="@style/MyDialogStyle">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.xxx.hello" />
            </intent-filter>
        </activity>
        <service
            android:name="cn.jpush.android.service.DownloadService"
            android:enabled="true"
            android:exported="false" >
        </service>
        <receiver android:name="cn.jpush.android.service.AlarmReceiver" />
         <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
         <meta-data android:name="JPUSH_APPKEY" android:value="c0d8228a8fb1e65ec9794bcb"/>
    </application>

</manifest>

6、在MainActivity.java文件中初始化推送接口,主要代码如下。

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	JPushInterface.setDebugMode(true);
	JPushInterface.init(this);
	Log.e("MainActivity", "main activity start ok");
}

7、将相关资源从下载的sdk解压文件中拷贝到项目路径下。

so文件:libs/armeabi,libs/armeabi-v7a,libs/x86_64三个文件夹,放入项目的libs文件夹下。

layout文件:res/layout/jpush_popwin_layout.xml,res/layout/jpush_webview_layout.xml放入项目res/layout目录下。

values文件:res/values/jpush_style.xml放入项目res/values目录下。

drawable文件:res/drawable-hdpi文件夹下的文件放入项目res/drawable-hdpi文件夹下。

8、启动应用,连接手机测试。

logcat下看到应用启动信息。


MainActivity中的日志


9、在开发者平台发送消息给应用。

进入应用管理,选择第二步创建的应用,点击推送,进入推送页面,选择发送通知。


接下来,填写推送内容,并选择推送目标平台Android。


点击页面底部“立即发送”,出现推送对话框。


点击“立即推送”,推送成功,会提示如下:


接下来,查看手机通知栏,正常的情况下,会出现一条消息。


10、恭喜您,已经成功接入极光SDK安卓客户端。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

30分钟搞定极光sdk安卓客户端接入 的相关文章

  • explian使用介绍

    1 xff09 id列数字越大越先执行 xff0c 如果说数字一样大 xff0c 那么就从上往下依次执行 xff0c id列为null的就表是这是一个结果集 xff0c 不需要使用它来进行查询 2 xff09 select type列常见的
  • centos7安装rustup

    rust安装 xff0c 因为被墙的原因 xff0c 在国内几乎很难安装 xff0c 需要通过代理安装 但是rustup却很容易 xff0c 一般在linux下 xff0c 通过官方指定的下列语句 xff0c 基本可以安装rustup cu
  • TiDB在Centos7上通过源码编译安装

    这里难以编译安装的是tikv tidb的三大部分tidb pd tikv中tidb pd均是采用go语言编写 xff0c 安装go语言包即可编译 xff0c 唯独tikv是采用rust语言写的 xff0c 他的编译是最复杂的 而且编译环境非
  • Cloudera Manager 5.12.0图文详解安装过程

    这里介绍的是cdh5的离线安装方式 xff0c 需要的文件提前准备好 xff0c 安装过程会快一些 安装前提 xff1a 机器配置内存一定要高 xff0c 我这里安装的虚拟机均是redhat7 xff1a 内存分别是6G 4G 4G 准备的
  • Failed to get D-Bus connection: Operation not permitted

    docker容器centos7中 xff0c 通过systemctl start service出现下错误 Failed to get D Bus connection Operation not permitted docker中的容器启
  • C++中如何求数组长度

    C 43 43 中没有直接提供求数组长度的方法 xff0c 提供了sizeof begin end 等方法 xff0c 可以供求数组长度使用 可以通过两种方式来求数组长度 xff0c 这里使用模版类 一个是使用sizeof 做除法 xff0
  • IDEA+scala插件开发spark程序

    spark由scala语言编写 xff0c 开发spark程序 xff0c 自然也少不了scala环境 xff0c 这里介绍如何利用Intellij IDEA开发spark 1 环境准备 jdk scala idea这些对于本文来说都已经默
  • hadoop-3.0.1源码编译需要注意的事项

    这次尝试了一下源码编译最新的hadoop3 0 1 xff0c 发现了几个和原来不太一样的地方 记录下来 xff1a 1 需要的jdk不再是原来的1 7 xff0c 直接jdk1 8就编译通过了 xff1b 2 以前安装需要安装编译依赖cm
  • hadoop-3.0.1单节点安装部署

    hadoop 3 0 1编译上和原来有不同的地方 xff0c 部署时 xff0c 也有一些需要注意的地方 安装部署过程一笔带过 xff1a a 设置免秘钥登录 b 设置jdk环境变量 c 配置编译好的hadoop环境变量 xff0c HAD
  • Dll动态链接库创建与隐式链接方式使用

    C 43 43 动态链接库的背景 xff1a windows操作系统诞生以来 xff0c dll就作为win操作系统的基础 xff0c 通常情况下dll不能直接运行 xff0c 也无法接收消息 xff0c 只能供其他可执行程序或者dll来调
  • def模块定义方式创建动态链接库与动态加载使用dll

    前面介绍了通过宏定义 declspec dllexport 的方式创建动态链接库 xff0c 需要定义头文件和宏 xff0c 定义函数时需要使用宏定义 xff0c 这种方式过于繁琐 xff0c 这里介绍使用模块定义文件的方式创建动态链接库
  • Echarts-图表根据值的不同展示成不同的颜色

    series name 39 直接访问 39 type 39 bar 39 barWidth 39 60 39 data 10 52 200 334 390 330 220 itemStyle normal color function p
  • error: no default toolchain configured

    当我们在windows上通过msi方式安装过rust之后 xff0c 运行rustc或者cargo命令行命令时 xff0c 出现如题所示的错误 stackoverflow上有一个issue 说过这个问题 最后的解决办法是通过rustup命令
  • hive启动报错汇总以及解决办法

    1 Relative path in absolute URI system java io tmpdir 7D 7Bsystem user name 7D p span style font size 12px 需要将hive site
  • Hive使用JsonSerDe格式化json数据

    hive默认使用分隔符如空格 xff0c 分号 xff0c 34 34 xff0c 制表符 t来格式化数据记录 xff0c 对于复杂数据类型如json nginx日志等 xff0c 就没有办法拆分了 xff0c 这时候需要更加强大的SerD
  • ClassNotFoundException: org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver解决办法

    我们通过源码编译的spark 2 3 0来启动spark sql进行sql操作 xff0c 结果出现如下错误 xff1a Spark assembly has been built with Hive including Datanucle
  • centos7源码编译安装lua:lua5.1升级lua5.3

    我们通过yum安装的lua默认是5 1版本 xff0c 如果不符合我们有的程序需要 xff0c 可以通过源码编译安装最新版lua 过程记录如下 下载 gt 解压 gt 编译三步曲 wget http www lua org ftp lua
  • linux下通过md5sum和sha1sum来校验下载文件的正确性

    在linux下 xff0c 我们经常通过wget curl等命令在某官方网站下载一个zip或者tar gz格式文件 xff0c 有时候 xff0c 我们不会去关注这个下载文件后面的md5值和sha1值 xff0c 这两个值其实有很大的用处
  • centos7源码安装git-2.3.0踩坑记录

    下载源码 gt 解压 gt 编译三步曲 我这里下载的是xz格式的文件 xff0c 第一步需要xz解压为tar格式文件 xff0c 然后通过tar xf命令解压 wget https mirrors edge kernel org pub s
  • adb与aapt获取安卓手机app的versionCode

    adb命令通常可以查看app包名以及app包的位置 xff0c 但是无法获取详细信息 xff0c 如版本号 这里结合aapt可执行程序来获取app的versionCode 这里以新浪微博app为例 xff0c 另外 xff0c 这里介绍的过

随机推荐