全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程调用红外线遥控功能示例

本文实例讲述了Android编程调用红外线遥控功能。分享给大家供大家参考,具体如下:

Android API Demos中有红外线遥控的小例子,在网上找了很久相关的资料,发现比较少,或许找的方法不对。

Github上有一个与之相关的开源项目https://github.com/timnew/AndroidInfrared,还没来得及学习。希望有相关资料或学习项目的大神们多指导 。

/**
 * Android红外线遥控官方Demo
 * 
 * @description:
 * @author ldm
 * @date 2016-4-28 下午5:06:28
 */
public class ConsumerIrActivity extends Activity {
  private static final String TAG = "ConsumerIrTest";
  private TextView mFreqsText;
  // Android4.4之后 红外遥控ConsumerIrManager,可以被小米4调用
  private ConsumerIrManager mCIR;
  @SuppressLint("InlinedApi")
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.consumer_ir);
    // 获取系统的红外遥控服务
    mCIR = (ConsumerIrManager) getSystemService(Context.CONSUMER_IR_SERVICE);
    initViewsAndEvents();
  }
  private void initViewsAndEvents() {
    findViewById(R.id.send_button).setOnClickListener(mSendClickListener);
    findViewById(R.id.get_freqs_button)
        .setOnClickListener(mOnClickListener);
    mFreqsText = (TextView) findViewById(R.id.freqs_text);
  }
  View.OnClickListener mSendClickListener = new View.OnClickListener() {
    @TargetApi(Build.VERSION_CODES.KITKAT)
    public void onClick(View v) {
      if (!mCIR.hasIrEmitter()) {
        Log.e(TAG, "未找到红外发身器!");
        return;
      }
      // 一种交替的载波序列模式,通过毫秒测量
      int[] pattern = { 1901, 4453, 625, 1614, 625, 1588, 625, 1614, 625,
          442, 625, 442, 625, 468, 625, 442, 625, 494, 572, 1614,
          625, 1588, 625, 1614, 625, 494, 572, 442, 651, 442, 625,
          442, 625, 442, 625, 1614, 625, 1588, 651, 1588, 625, 442,
          625, 494, 598, 442, 625, 442, 625, 520, 572, 442, 625, 442,
          625, 442, 651, 1588, 625, 1614, 625, 1588, 625, 1614, 625,
          1588, 625, 48958 };
      // 在38.4KHz条件下进行模式转换
      mCIR.transmit(38400, pattern);
    }
  };
  @SuppressLint("NewApi")
  View.OnClickListener mOnClickListener = new View.OnClickListener() {
    public void onClick(View v) {
      StringBuilder b = new StringBuilder();
      if (!mCIR.hasIrEmitter()) {
        mFreqsText.setText("未找到红外发身器!");
        return;
      }
      // 获得可用的载波频率范围
      ConsumerIrManager.CarrierFrequencyRange[] freqs = mCIR
          .getCarrierFrequencies();
      b.append("IR Carrier Frequencies:\n");// 红外载波频率
      // 边里获取频率段
      for (ConsumerIrManager.CarrierFrequencyRange range : freqs) {
        b.append(String.format("  %d - %d\n",
            range.getMinFrequency(), range.getMaxFrequency()));
      }
      mFreqsText.setText(b.toString());// 显示结果
    }
  };
}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
<Button
    android:id="@+id/send_button"
    android:text="@string/ir_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
  <Button
    android:id="@+id/get_freqs_button"
    android:text="@string/ir_get_freqs"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
  <ScrollView
    android:id="@+id/freqs_text_scroll"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >
    <TextView
      android:id="@+id/freqs_text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:paddingLeft="3dp"
      android:paddingRight="3dp" />
  </ScrollView>
</LinearLayout>

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android视图View技巧总结》、《Android资源操作技巧汇总》、《Android操作json格式数据技巧总结》、《Android开发入门与进阶教程》、《Android编程之activity操作技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 红外线  # 遥控  # Android 8.0实现蓝牙遥控器自动配对  # Android自定义View实现遥控器按钮  # android模拟实现航拍遥控  # 未找到  # 进阶  # 操作技巧  # 还没  # 相关内容  # 中有  # 上有  # 很久  # 感兴趣  # 大神  # 给大家  # 找了  # 相关资料  # 与之  # 更多关于  # 所述  # 程序设计  # 开源  # 比较少  # 在网上 


相关文章: 制作网页的网站有哪些,电脑上怎么做网页?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  建站之星如何快速解决建站难题?  北京制作网站的公司,北京铁路集团官方网站?  英语简历制作免费网站推荐,如何将简历翻译成英文?  PHP 500报错的快速解决方法  如何有效防御Web建站篡改攻击?  网站制作难吗安全吗,做一个网站需要多久时间?  焦点电影公司作品,电影焦点结局是什么?  免费网站制作appp,免费制作app哪个平台好?  如何快速生成橙子建站落地页链接?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  模具网站制作流程,如何找模具客户?  Android滚轮选择时间控件使用详解  移民网站制作流程,怎么看加拿大移民官网?  c# 服务器GC和工作站GC的区别和设置  建站之星3.0如何解决常见操作问题?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  建站之星与建站宝盒如何选择最佳方案?  如何用花生壳三步快速搭建专属网站?  如何用腾讯建站主机快速创建免费网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  临沂网站制作企业,临沂第三中学官方网站?  ,交易猫的商品怎么发布到网站上去?  已有域名如何快速搭建专属网站?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  清除minerd进程的简单方法  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  专业商城网站制作公司有哪些,pi商城官网是哪个?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  广州商城建站系统开发成本与周期如何控制?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  网站专业制作公司有哪些,做一个公司网站要多少钱?  如何在阿里云ECS服务器部署织梦CMS网站?  制作旅游网站html,怎样注册旅游网站?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星后台管理:高效配置与模板优化提升用户体验  如何通过智能用户系统一键生成高效建站方案?  如何快速搭建高效香港服务器网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  c++ stringstream用法详解_c++字符串与数字转换利器  如何在IIS中配置站点IP、端口及主机头?  平台云上自助建站如何快速打造专业网站?  如何选择香港主机高效搭建外贸独立站?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  已有域名和空间如何搭建网站?  如何快速完成中国万网建站详细流程?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。