android 空调遥控器——红外设备(基础)

来源:互联网 发布:c语言 延时 linux 编辑:程序博客网 时间:2024/04/30 12:06

最近项目中需要用到 用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 空调遥控器——简单发送内容

原创粉丝点击