最近项目中需要用到 用android 手机控制空调,于是小编就下了心思研究了一下红外开发,去网上查了查,这方面的内容少之又少,所以决定自己搞一搞,好了废话不多说,开搞!

1、要求:调用手机红外设备需要注意,你得看看手机上有没有红外发射器(本人的是荣耀V8,自带红外设备)据小编自己了解 应该是4.4版本 之后的android手机才有机会有红外发射设备因为细心的小编发现 当调用里面方法时 需要加SDK版本判断

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)或者@RequiresApi(api = Build.VERSION_CODES.KITKAT)

这两个意思是都需要API 为19的手机 小编自行理解不喜勿喷;

2、好说完以上要求,来具体说说怎么调用这个红外发射设备,或者说是驱动;
首先先加一个权限和一个过滤器

<uses-permission android:name="android.permission.TRANSMIT_IR" />这个权限呢就是调用红外设备就不多说<uses-feature android:name="android.hardware.ConsumerIrManager" />这个过滤器的作用主要是给应用市场提个醒 Android Market会根据uses-feature过滤所有你设备不支持的应用  再通俗点说就是没有ConsumerIrManager这个类的android设备 在应用市场上看不到此应用。(因为版本太低 下载下来也没用)

3、红外控制类 ConsumerIrManager
具体怎么调用看代码(注释写的很清楚了)

//需要api大于19与下面if判断用途类似@RequiresApi(api = Build.VERSION_CODES.KITKAT)public class InfraredActivity extends BaseActivity {    //获取红外控制类    private ConsumerIrManager IR;    //判断是否有红外功能    boolean IRBack;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_infrared);        inItEvent();    }    //初始化事务    private void inItEvent() {        //获取ConsumerIrManager实例        IR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);        //如果sdk版本大于4.4才进行是否有红外的功能(手机的android版本)        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {            IRBack = IR.hasIrEmitter();            if (!IRBack) {                showToast("对不起,该设备上没有红外功能!");            } else {                showToast("红外设备就绪");//可进行下一步操作            }        }    }    /**     * 发射红外信号     *     * @param carrierFrequency 红外传输的频率,一般的遥控板都是38KHz     * @param pattern          指以微秒为单位的红外开和关的交替时间     */    private void sendMsg(int carrierFrequency, int[] pattern) {        IR.transmit(carrierFrequency, pattern);    }}

4、以上就是红外的第一步(基础中的基础、重中之重)怎么实例化ConsumerIrManager ,以及要使用的方法。

想详细了解 看小编下一篇

android 空调遥控器——简单发送内容

更多相关文章

  1. 简单轻松!通过USB数据线,让Android(安卓)Studio连接到自己的安卓手
  2. Android获取不同手机 自身存储和外置SD卡存储路径的解决方案
  3. android高分段进阶攻略(1)传感器
  4. 作为Android开发者 你真的知道app从启动到主页显示的过程吗?
  5. 局域网内android设备发现及通讯
  6. Android调用H5的方法.Js交互
  7. Flutter调用Android和iOS原生代码的方法示例
  8. Android开发的第一个例子(内附Sdk、Android(安卓)studio的下载)
  9. Android在中国的繁荣并没有给Google带来任何好处

随机推荐

  1. CentOS6.8配置GO语言开发环境
  2. CentOS 7 部署RabbitMQ 服务
  3. 管理和维护RHCS集群
  4. debian10如何设置开机命令行
  5. 不使用宏的情况 Multi-Stage Word 也可让
  6. 华盟君吐血整理2017网络精品教程
  7. ipset 使用
  8. envoy网络部署笔记
  9. 中国信安圈已被人盯上了!
  10. 代码分析平台CodeQL学习手记(一)