十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
JSON( JavaScript Object Notation ) 是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。
创新互联主要从事成都网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务门源,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
JSON 建构于两种结构:
JSON 具有以下这些格式:
参考: Android 中 解析 JSON
Android 提供类四种不同的类来操作 JSON 数据。这些类是 JSONArray、JSONObject、JSONStringer 和 JSONTokenizer
为了解析 JSON 对象,须先创建一个 JSONObject 类的对象,需要传入需解析的字符串 JSONObject root = new JSONObject(candyJson); 然后根据 JSONObject 对象提供方法以及数据类型解析对应 json 数据。下表展示一些 JSONObiect 提供的方法
示例:
接口获取下来的数据为
{"status":200,"message":"查询成功","data":{"id":32,"user_id":null,"user_code":null,"user_pass":null,"meeting_id":"1","meeting_pass":null,"config_param_ip":"11.1.1.70","port":"6501","web_config_param_ip":"11.1.1.70","web_port":"6501","unit_code":null,"create_time":null,"update_time":null,"status":0,"userCode":"video1","userPass":"video1","meetingId":"1","meetingPass":"","apiPort":"13000","username":"admin","password":"123456","updateTime":"2021-11-08 17:45:29"}}
使用方法
try {
JSONObject jsonObject = new JSONObject(outstring);
int resultCode = jsonObject.getInt("status");
if (resultCode == 200) {
JSONObject obj = jsonObject.getJSONObject("data");
IP = obj.getString("config_param_ip");
port = obj.getString("web_port");
username = obj.getString("userCode");
password = obj.getString("userPass");
roomID = Integer.parseInt(obj.getString("meetingId"));
roomPassword = obj.getString("password");
} else {
ToastUtils.showShort("查询失败");
}
goVideo();
} catch (Exception e) {
e.printStackTrace();
}
功能需要,获取物理手柄数据( 本文章只针对处于Android模式的手柄 ),然后转换成云需要的数据。手柄数据主要分为两款,一个是轴数据,一个是按键数据,下面分别来说明。
一是判断是否还有左滚轴,二是判断是否来源是手柄,至于为什么判断是否包含左滚轴,因为市面上很多遥控器都有轴且设备源包含手柄。加上左滚轴判断可以更精确。
按键数据可通过dispatchKeyEvent or onKeyDown,onKeyUp获得,手柄数据如下:
轴数据通过onGenericMotionEvent(MotionEvent event)此方法传递。
通常手柄的有轴数据的功能组为,左摇杆,有摇杆,方向盘与 L2,R2两个扳机键,除L2与R2只对应一个轴值外其他设备均对应X,Y两个轴值,下面一一介绍:
对应轴:MotionEvent.AXIS_X,MotionEvent.AXIS_Y
取值范围: [-1.0 , 1.0]
说明:X代表横向数据,Y代表纵向数据。
轴数据的获取方式为:
对应轴:MotionEvent.AXIS_Z,MotionEvent.AXIS_RZ
取值范围: [-1.0 , 1.0]
说明:Z代表横向数据,RZ代表纵向数据。
轴数据的获取方式为:
对应轴:MotionEvent.AXIS_HAT_X,MotionEvent.AXIS_HAT_Y
取值范围: [-1.0 , 1.0]
说明:AXIS_HAT_X代表横向数据,AXIS_HAT_Y代表纵向数据。X == 1.0 Y == 0 代表右边,其他方位参考此值。
轴数据的获取方式为:
部分手柄没有此轴。
对应轴:MotionEvent.AXIS_LTRIGGER,MotionEvent.AXIS_RTRIGGER
取值范围: [0 , 1.0]
轴数据的获取方式为:
本篇文章对应的手柄模式需为Android模式,xBoxOne跟xBox360模式需读取usb数据且是另外一套数据解析模式。后续再说。Over。