第一句子大全,网罗天下好句子,好文章尽在本站!

探索安卓红外API: ConsumerIrManager类功能和应用实践

时间:2024-02-07

ConsumerIrManager类是安卓系统中用于红外通信的API之一。它允许开发者控制设备上的红外发射器,用于发送红外信号。通过ConsumerIrManager类,开发者可以调用红外发射器发送预定义...

友情提示:本文共有 2714 个字,阅读大概需要 6 分钟。

ConsumerIrManager类是安卓系统中用于红外通信的API之一。它允许开发者控制设备上的红外发射器,用于发送红外信号。通过ConsumerIrManager类,开发者可以调用红外发射器发送预定义的红外指令,如控制电视、空调等设备。该类提供了发送红外信号的接口,包括频率和红外数据等参数的设置。ConsumerIrManager类为开发者提供了丰富的接口和功能,使他们能够轻松地实现红外控制功能,扩展了安卓设备的应用场景。

之前没怎么接触过安卓编程,学校实验室要搞个小项目,本来想搞个类似小米遥控板那种的小应用。结果发现百度一下 安卓红外API 找不到有用的东西。自己摸索了半天给大家分享分享

后来在Android开发者文档里面找到了一个叫ConsumerIrManager的类。

先看看文档里面怎么写的:

public final class

ConsumerIrManager

extends Object

Java.lang.Object

android.hardware.ConsumerIrManager

Class Overview

Class that operates consumer infrared on the device.

To obtain an instance of the system infrared transmitter, call Context.getSystemService() with CONSUMER_IR_SERVICE as the argument.

Summary

Nested Classes

class ConsumerIrManager.CarrierFrequencyRange Represents a range of carrier frequencies (inclusive) on which the infrared transmitter can transmit

Public Methods

CarrierFrequencyRange[] getCarrierFrequencies() Query the infrared transmitter’s supported carrier frequencies

boolean hasIrEmitter() Check whether the device has an infrared emitter.

void transmit(int carrierFrequency, int[] pattern) Tansmit and infrared patternThis method is synchronous; when it returns the pattern has been transmitted.

当然,要使用红外首先得在AndroidManifest.xml中声明权限,并且你的手机有红外发射器(我是LGG2,有红外。其他的我就不知道了,还就知道小米4好像也有)。

然后申请一个实例

上面说了,要获得一个红外发射的实例得用Context.getSystemService()。

这个getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。具体的可以参考别人博客上的android中getSystemService详解

比如在MainActivity.java里面

import android.hardware.ConsumerIrManager; ..... @Override protected void onCreate(Bundle savedInstanceState) { ..... ConsumerIrManager IR=(ConsumerIrManager)getSystemService(CONSUMER_IR_SERVICE);

这样就得到了一个ConsumerIrManager 的实例。

如果你不是在Activity类里面创建实例的话。需要传入一个context参数。

然后具体看看这个类。

CarrierFrequencyRange

这个我没用到。应该是获取传输频率范围的一个子类。

hasIrEmitter

hasIrEmitter可以检查当前设备是否有红外。

transmit(int carrierFrequency, int[] pattern)

public void transmit (int carrierFrequency, int[] pattern)

Tansmit and infrared pattern

This method is synchronous; when it returns the pattern has been transmitted. Only patterns shorter than 2 seconds will be transmitted.

Parameters

carrierFrequency The IR carrier frequency in Hertz.

pattern The alternating on/off pattern in microseconds to transmit.

这个就是我们关注的最重要的方法了。它有两个参数,carrierFrequency代表红外传输的频率,一般的遥控板都是38KHz。pattern就是指以微妙为单位的红外开和关的交替时间。

比如说

pattern={9000,4500,600,1600};

代表红外先打开9000微秒再关闭4500微秒再打开1600微秒……..依次类推。但是要注意,整个数组的时间之和不能超过两秒。还有就是这里的开对应的是示波器上的低电平,关对应的高电平。比如网上找到的格力遥控器的编码是:

格力空调遥控器(YB0F2)红外码组成如下,按解码顺序排列

起始码(S)+35位数据码+连接码(C)+32位数据码

1、各种编码的电平宽度:

数据码由“0”“1”组成:

0的电平宽度为:600us低电平+600us高电平,

1的电平宽度为:600us低电平+1600us高电平

起始码S电平宽度为:9000us低电平+4500us高电平

连接码C电平宽度为:600us低电平+20000us高电平

详细点这里

也就是说偶数位对应的是低电平,奇数位对应的是高电平。然后只要你能找到对应遥控器的编码基本上就能够做到用手机遥控了。(我找了半天也只找到这个格力的空调遥控器)

本文如果对你有帮助,请点赞收藏《探索安卓红外API: ConsumerIrManager类功能和应用实践》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(4)
  1. 爺、善解人衣2024-02-07 08:08爺、善解人衣[香港网友]103.10.19.227
    学习了,感觉可以用来做一些有趣的DIY项目。
    顶0踩0
  2. 守护不弃2024-02-07 08:02守护不弃[山西省网友]101.101.64.117
    @240公里这个功能很酷,可以想象一下控制家里的电器会有多方便!
    顶18踩0
  3. 240公里2024-02-07 07:57240公里[湖南省网友]103.38.229.105
    看起来很有技术含量,对安卓开发者来说应该是个不错的突破点。
    顶0踩0
  4. 微安之静2024-02-07 07:52微安之静[黑龙江省网友]203.12.198.194
    挺有意思的,一直觉得手机红外功能被低估了!
    顶1踩0
相关阅读
谷歌罕见摆臭脸 只因苹果一句话

谷歌罕见摆臭脸 只因苹果一句话

作为功能机时代的霸主,诺基亚是最早将这项技术引入到手机的厂商

2022-12-26 #经典句子

哪个英语翻译软件最准确?英语翻译软件排行榜2017

哪个英语翻译软件最准确?英语翻译软件排行榜2017

通过在线翻译的方式,方便彼此的沟通交流

2024-01-12 #经典句子

用一句话评价苹果公司的状态 Iphone11没有5G

用一句话评价苹果公司的状态 Iphone11没有5G

华为、小米、三星等一众手机厂家推出了自己的5G产品,而苹果公司让自己最新发布的智能手机仍然停留在4G时代

2024-01-10 #经典句子

微信文件总是过期没保存?这四个工具一定能帮到你

微信文件总是过期没保存?这四个工具一定能帮到你

好友上千人,窗口来回切换收发文件,工作时难免会忽略掉一些文档,等到想起来需要查看时却发现已经被微信自动清理

2012-12-04 #经典句子

用惯了iPhone 突然换成安卓是什么感受?句句都说到心坎里了

用惯了iPhone 突然换成安卓是什么感受?句句都说到心坎里了

一个老果粉就给大家讲讲,用惯了iPhone,突然换成安卓是什么感受?句句都说到心坎里

2023-12-30 #经典句子

为何现在有“男用安卓 女用iPhone”的话语 这3点原因很真实!

为何现在有“男用安卓 女用iPhone”的话语 这3点原因很真实!

不过根据现在市面上手机的销量来说,其实大部分男性朋友还都是比较喜欢使用安卓机型,而对于女生来说都是比较倾向于iPhone,要知道现在大部分的安卓机型

2023-09-20 #经典句子

iOS 15升级了个寂寞?一文读懂要不要第一时间更新

iOS 15升级了个寂寞?一文读懂要不要第一时间更新

那么苹果这次发布的新版软件系统,对得起熬夜等待的果粉吗?今天我就以最多果粉使用的iOS系统来讨论下,这iOS 15到底如何

2023-06-08 #经典句子

语音助手大比拼:苹果Siri和华为小e

语音助手大比拼:苹果Siri和华为小e

本文将以苹果Siri和华为小e为例,对这两个语音助手进行比较分析,希望对你有帮助

2022-12-26 #经典句子

12种藏文智能翻译软件(安多方言版)在青海发布

12种藏文智能翻译软件(安多方言版)在青海发布

发布会上,来自各地的藏语文专家学者以及青海民族大学学生等代表现场观看了软件效果演示并亲自体验,对软件给予了高度评价

2013-02-14 #经典句子