配置AndroidManifest.xml

    <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.MOUNT_UNMOUNT_FILESYSTEMS" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.WRITE_SETTINGS" /><application        android:name="自己的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><activity android:name="com.sunset.im.IMActivity" ></activity><activity android:name="在极光注册的包名.DengluActivity"></activity><!-- Required SDK 核心功能 --><!-- option since 2.0.5 可配置PushService,DaemonService,PushReceiver,AlarmReceiver的android:process参数 将JPush相关组件设置为一个独立进程 --><!-- 如:android:process=":remote" --><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><!-- since 1.1.4 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 --><!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 --><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="在极光注册的包名" /></intent-filter></service><!-- Required Push SDK核心功能 --><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="在极光注册的包名" /></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 Push SDK核心功能 --><activity
            android:name="cn.jpush.android.ui.PushActivity"android:configChanges="orientation|keyboardHidden"android:theme="@android:style/Theme.Translucent.NoTitleBar" ><intent-filter><action android:name="cn.jpush.android.ui.PushActivity" /><category android:name="android.intent.category.DEFAULT" /><category android:name="在极光注册的包名" /></intent-filter></activity><!-- Required Push SDK核心功能 --><service
            android:name="cn.jpush.android.service.DownloadService"android:enabled="true"android:exported="false" /><!-- Required Push SDK核心功能 --><receiver android:name="cn.jpush.android.service.AlarmReceiver" /><!-- IM Required IM SDK核心功能 --><receiver
            android:name="cn.jpush.im.android.helpers.IMReceiver"android:enabled="true"android:exported="false" ><intent-filter android:priority="1000" ><action android:name="cn.jpush.im.android.action.IM_RESPONSE" /><action android:name="cn.jpush.im.android.action.NOTIFICATION_CLICK_PROXY" /><category android:name="在极光注册的包名" /></intent-filter></receiver><!-- Required. Enable it you can get statistics data with channel --><meta-data
            android:name="JPUSH_CHANNEL"android:value="developer-default" /><!-- Required. AppKey copied from Portal --><meta-data
            android:name="JPUSH_APPKEY"android:value="在极光注册的的应用的APPKEY" />

先初始化Application

    @Overridepublic void onCreate() {super.onCreate();Log.i("JMessageDemoApplication", "Application onCreate");JMessageClient.init(getApplicationContext());//是否打印LOGJPushInterface.setDebugMode(true);}

注册用户

    public void register() {JMessageClient.register("用户名", "用户密码", new BasicCallback() {@Overridepublic void gotResult(int arg0, String arg1) {if (arg0==0) {Toast.makeText(MainActivity.this, "注册成功", 0).show();}}});}

获取用户信息

    public void getUserInfo() {JMessageClient.getUserInfo(FriendName, new GetUserInfoCallback() {@Overridepublic void gotResult(int arg0, String arg1, UserInfo arg2) {System.out.println("............." + arg0);System.out.println("............." + arg1);System.out.println(arg2.getUserName() + ">>>>>>>>>>>>>"+ arg2.getNickname());}});}

一定要在使用极光SDK的Activity重配置onResume()和onPause()

@Overrideprotected void onResume() {super.onResume();JPushInterface.onResume(this);}@Overrideprotected void onPause() {super.onPause();JPushInterface.onPause(this);}

登录

public void login() {JMessageClient.login(dl_name.getText().toString(), dl_pwd.getText().toString(), new BasicCallback() {@Overridepublic void gotResult(int arg0, String arg1) {if (arg0==0) {Toast.makeText(DengluActivity.this, "登陆成功", 0).show();}}});}

发送消息要在开启一个子线程

//创建一个消息对象
Message m = JMessageClient.createSingleTextMessage("朋友的用户名", "要发送的消息");
//发送消息
JMessageClient.sendMessage(m);

接受消息

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_im);//注册一个接受的广播JMessageClient.registerEventReceiver(this);}//接受消息的事件public void onEventMainThread(MessageEvent event) {Message msg = event.getMessage();switch (msg.getContentType()) {case text:// 处理文字消息TextContent textContent = (TextContent) msg.getContent();textContent.getText();txt_sms.append(textContent.getText());break;}}

一定要在onDestory()中去掉广播

    @Overrideprotected void onDestroy() {super.onDestroy();JMessageClient.unRegisterEventReceiver(this);}

自定义设置通知栏的跳转界面,默认的是跳转主界面

    public void onEvent(NotificationClickEvent event) {Intent notificationIntent = new Intent(this, IMActivity.class);this.startActivity(notificationIntent);// 自定义跳转到指定页面}

【IM】极光简单的聊天测试相关推荐

  1. Android 极光IM简单的聊天界面全手动实现

    Android 极光IM简单的聊天界面全手动实现 说到实时通讯,很多人都想到融云,极光,环信,网易啊等等一系列, 因为需求原因,我们最近的项目呢是用的极光. 由于极光的界面Demo十分繁琐,很多功能我 ...

  2. java udp简单聊天程序_Java基于UDP协议实现简单的聊天室程序

    最近比较闲,一直在抽空回顾一些java方面的技术应用. 今天没什么事做,基于udp协议,写了一个非常简单的聊天室程序. 现在的工作,很少用到socket,也算是对java网络编程方面的一个简单回忆. ...

  3. Netty学习笔记(六) 简单的聊天室功能之WebSocket客户端开发实例

    在之前的Netty相关学习笔记中,学习了如何去实现聊天室的服务段,这里我们来实现聊天室的客户端,聊天室的客户端使用的是Html5和WebSocket实现,下面我们继续学习. 创建客户端 接着第五个笔记 ...

  4. SpringBoot入门建站全系列(二十七)WebSocket做简单的聊天室

    SpringBoot入门建站全系列(二十七)WebSocket做简单的聊天室 一.概述 WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 ...

  5. java udp 聊天室_Java基于UDP协议实现简单的聊天室程序

    最近比较闲,一直在抽空回顾一些Java方面的技术应用. 今天没什么事做,基于UDP协议,写了一个非常简单的聊天室程序. 现在的工作,很少用到socket,也算是对Java网络编程方面的一个简单回忆. ...

  6. python聊天室详细教程_python简单实现聊天室功能(代码教程)

    聊天室程序需求: 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 这里我们首先要 ...

  7. socket通信实例(简单的聊天室)

    这次程序运用socket通信实现一个简单的聊天室. 一开始是想在控制台实现,但遇到问题是输出和输入都在一个界面上,最后还是编一个swing程序来实现. 服务器对每一个客户端分配一个线程,run函数实现 ...

  8. TensorFlow应用:制作一个简单的聊天机器人

    现在很多卖货公司都使用聊天机器人充当客服人员,许多科技巨头也纷纷推出各自的聊天助手,如苹果Siri.Google Now.Amazon Alexa.微软小冰等等.前不久有一个视频比较了Google N ...

  9. Go 实现一个简单的聊天室

    创建客户端 先在main方法中创建一个sorcket服务端,这个服务端就像一个酒店 func main() {listen, err := net.Listen("tcp", &q ...

最新文章

  1. GATK 无法下载的问题
  2. 海康、大华IpCamera RTSP地址和格式
  3. rmReport 自适应行高(自动行高)
  4. oracle数据库编程实验2答案,Oracle数据库-作业2-答案
  5. php 把查询数据转json格式,php将从数据库查询到的数据转化为json格式,并写入json文件中...
  6. TELERIK Reporting 实践
  7. c# datagridview列形式为Combobox,每行下拉选项不一样
  8. 一段python算法实战的代码
  9. a5松下驱动器参数设置表_松下伺服驱动器参数设置MSD043A1X
  10. 移动端身份证件OCR识别
  11. 417分上那所计算机学院,2021年高考417分左右能上什么大学(100所)
  12. 【GitHub前端练手项目--50天50个项目---商品加载效果-----day08】
  13. 【Halcon】插值算法通俗讲解
  14. The server time zone value .. is unrecognized or represents more than one time zone
  15. 解决运行js代码报错—Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs
  16. 在线ARM仿真器知识(嵌入式系统设计师必备)
  17. Xftp 传文件到虚拟机一直显示状态错误,传不进去
  18. 奥塔在线:Centos下使用RPM方式安装JDK1.8
  19. NodeJS 安装及环境配置-Win10
  20. HDU6112今夕何夕(Java写法)

热门文章

  1. 乌班图安装docker
  2. 大数据风控在金融科技中如何应用?难题何在?
  3. 如何根据导入项目的config.properties配置文件去连接远程数据库?
  4. 在Python中使用Stata:IPyStata介绍
  5. 活死细胞染色——Cell Meter 细胞活性检测试剂盒
  6. 分子对接教程 | (4) 蛋白受体文件的预处理
  7. Java 使用注解检验手机号
  8. KingbaseES 数据库并行查询
  9. spring data jpa使用详解(推荐)
  10. Vue3 脚手架创建项目