极光IM简单接入步骤
最近生接触了一下android,尝试导入极光的demo到android study 各种错误,然后下载极光生成的项目也是各种错误,感觉好像有点脱离时代了,记得以前用eclipse写android只需要考虑能不能连接上google服务器的问题,从来没有各种因升级导致的这不行那不么,怎么到android study每升级一次就郁闷一堆人呢...
干脆新建一个项目,手动导入
整个过程分为 1 添加权限 2 添加服务和广播 3导入libs 4 编码
1 权限
我是直接复制的demo中的权限设定,里面有一个自定义权限,需要把包名改成当前包名
<permission android:name="包名.permission.JPUSH_MESSAGE"android:protectionLevel="signature" /><!-- Required --><uses-permission android:name="包名.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.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.WRITE_SETTINGS" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!-- Required for jmrtc --><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.CAMERA" /><!-- Optional. Required for location feature --><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><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_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.GET_TASKS" />
2 服务,广播,还有key
<!-- 可配置android:process参数将PushService放在其他进程中 --><serviceandroid:name="cn.jpush.android.service.PushService"android:enabled="true"android:exported="false" android:process=":pushcore"><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><!-- Required SDK核心功能--><receiverandroid:name="cn.jpush.android.service.PushReceiver"android:enabled="true" android:exported="false" android:process=":pushcore"><intent-filter android:priority="1000"><action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /><!-- Required 显示通知栏 --><category android:name="您自己的包名" /></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><!-- Required SDK核心功能--><receiverandroid:name="cn.jpush.im.android.helpers.IMReceiver"android:enabled="true"android:exported="false"/><!-- Required SDK核心功能--><receiverandroid:name="cn.jpush.android.service.AlarmReceiver"android:exported="false" /><!-- Required since JCore 1.1.7. SDK 核心功能--><providerandroid:name="cn.jpush.android.service.DataProvider"android:authorities="您自己的包名.DataProvider"android:exported="false" /><!-- Required. For publish channel feature --><!-- JPUSH_CHANNEL 是为了方便开发者统计APK分发渠道。--><!-- 例如: --><!-- 发到 Google Play 的APK可以设置为 google-play; --><!-- 发到其他市场的 APK 可以设置为 xxx-market。 --><!-- 目前这个渠道统计功能的报表还未开放。--><meta-dataandroid:name="JPUSH_CHANNEL"android:value="developer-default" /><!-- Required. AppKey copied from Portal --><meta-dataandroid:name="JPUSH_APPKEY"android:value="您自己的Appkey" />
3 复制libs
将libs中的文件复制到自己项目的app的libs中,并且在jar上单击右键,add as lib
在app 的 build.gradle中的android中增加代码
sourceSets {main {jniLibs.srcDirs = ['libs']}}
4 编码
A 初始化按demo的写法是写在自定义的Application中,不过我没用过,这里只要初始化成功就好了,就放在AppCompatActivity中了
//调试模式会输出信息,方便找错JMessageClient.setDebugMode(true);JMessageClient.init(getApplicationContext(), true);
B 登陆
JMessageClient.login("帐号", "密码", new BasicCallback() {@Overridepublic void gotResult(int i, String s) { }});
C 在需要接收消息的地方注册消息,然后就可以根据自己的需要去查api文档了
JMessageClient.registerEventReceiver(this);//在Activity销毁时最好注销掉事件
@Overrideprotected void onDestroy() {JMessageClient.unRegisterEventReceiver(this);super.onDestroy();}//注意需要this中包含回调事件的处理函数
public void onEventMainThread(ChatRoomMessageEvent event) {List<Message> msgs = event.getMessages();for (Message msg : msgs) {}}//也可以用全局消息方式,demo中有
转载于:https://www.cnblogs.com/meieiem/p/9263051.html
极光IM简单接入步骤相关推荐
- 微信公众号自动回复html,[.NET] 简单接入微信公众号开发:实现自动回复
简单接入微信公众号开发:实现自动回复 一.前提 先申请微信公众号的授权,找到或配置几个关键的信息(开发者ID.开发者密码.IP白名单.令牌和消息加解密密钥等). 二.基本配置信息解读 开发者ID:固定 ...
- 手把手教你简单接入微信SDK
就看微信现在这么火的样子,如果你的APP不接入微信的SDK好像就有点脱离了时代大车轮一样.一个成功的APP,不单单凭借着一个好的想法,一个好的功能,最主要还是用户量.用户量就好像是水,我们的APP就一 ...
- 梯度下降法优化目标函数_如何通过3个简单的步骤区分梯度下降目标函数
梯度下降法优化目标函数 Nowadays we can learn about domains that were usually reserved for academic communities. ...
- 微信公众号简单接入springboot集成weixin4j
微信公众号简单接入springboot集成weixin4j 内网穿透 登录地址:https://natapp.cn/ 注册用户,购买免费渠道 进行配置端口号(我配置的是8802) 根据网址进行下一步操 ...
- 创建类的三个步骤_如何通过5个简单的步骤创建企业网站
创建类的三个步骤 Having the right business website can help any business alter their fortunes. If you are a ...
- 【接入指南】华为帐号服务Authorization Code模式介绍与接入步骤详解
华为帐号服务提供两种登录授权模式,第一种是Authorization Code模式,第二种是ID-Token模式,这两种模式在使用场景上存在差异.本文将详细介绍Authorization Code模式 ...
- 例举电脑一键重装系统win10简单的步骤操作
例举电脑一键重装系统win10简单的步骤操作 windows10系统界面新,时尚前卫,启动速度快,功能强大,一键重装系统越来越受受的电脑用户们的青睐,特别是不懂计算机知识的用户 ,都希望方法越简单越好 ...
- 一个简单的步骤让你的 Python 代码更干净
说起来容易做起来难,我们都知道代码可读性非常重要,但是写的时候总是随心所欲,不考虑类型提示.import 排序.PEP8 规范.今天分享一个小技巧,通过一个简单的步骤就可以让你的 Python 代码更 ...
- 机智云代码移植_【机智云Gokit3测评】设备接入-步骤二:程序移植
[机智云Gokit3测评]设备接入-步骤二:程序移植 [复制链接] 1.写在前面 2.下载软件包 进入机智云官网的开发者中心后,点击"下载中心"(https://download. ...
- 怎么剪辑视频教程分享:简单的步骤要注意,配音也不能忽视
怎么剪辑视频教程分享:简单的步骤要注意,配音也不能忽视 做短视频剪辑,除了需要有耐心,还应当要有一定的思维创意能力.不过我们今天只简单的学些一下关于怎么剪辑短视频的基本教程,也就是关于剪辑短视频的步骤 ...
最新文章
- python3 赋值与内存空间
- Python中为什么推荐使用isinstance来进行类型判断?而不是type
- react-redux中的持久化数据存储redux-persist
- IISExpress Log 文件路径
- 2016年10月计算机网络技术,2016年10月自考《计算机网络技术》练习题及答案1
- python读取mysql中表内数据转换成json_使用python将mySql查询结果转换为json
- activiti创建子流程_OA流程图绘制指南
- 《深度学习Python实践》第20章——回归项目实例
- css中hack是什么
- 2021年下半年信息安全工程师上午真题及答案解析
- c语言银行卡六位密码编译,6位随机密码生成器
- socket 由于目标计算机积极拒绝 无法连接,由于目标计算机积极拒绝,无法连接。 192.168.3.9:8081...
- Java面向对象游戏-黑熊怪变成武大郎吃唐僧 --如何方法继承 重写
- 树莓派Pico与ADXL345三轴加速度传感器SPI总线接口技术及MicroPython编程
- 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)
- USACO2018 OPEN TEST - Silver
- [转] 一篇好文 ---steve jobs (stay hungry, stay foolish)
- NCH ExpressDictate for Mac(数字听写记录软件)
- Ubuntu18.04配置、软件安装-搜狗输入法,网易云音乐
- 其他的torrent资源
热门文章
- 使用PMBus总线监控电源管理芯片UCD90120
- SQL 获取当前日期
- python 趋势线计算式_怎么将趋势线公式编辑成计算公式
- 视频教程-PHP之socket入门实战websocket聊天室-PHP
- 太阳能电池最大功率点跟踪MPPT(Maximum Power Point Tracking)技术
- 3dmax学习7——车削修改器
- 石英晶振封装HC-49S HC-49U HC-49SMD(12mhz 11.0592mhz等)的关系与区别
- pdca实施的流程图_(fmea七步法)过程流程图,FMEA,控制计划哪个在前哪个在后
- java程序员语录_2019精选java程序员语录大全
- ansys17.2安装教程