本文共 1994 字,大约阅读时间需要 6 分钟。
最近项目中需要用到 用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、好说完以上要求,来具体说说怎么调用这个红外发射设备,或者说是驱动;
首先先加一个权限和一个过滤器这个权限呢就是调用红外设备就不多说 这个过滤器的作用主要是给应用市场提个醒 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 空调遥控器——简单发送内容
原博客地址 :https://blog.csdn.net/gywuhengy/article/details/72851553