因为我一个小伙伴一起搞一个项目,他负责硬件我负责android。然后要在手机上实现红外线遥控的功能。在网上找了很多资料终于集众家所长,搞定了。

package com.example.zmx.myapplication;import android.annotation.TargetApi;
import android.os.Build;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.hardware.ConsumerIrManager;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends ActionBarActivity {private ConsumerIrManager IR;private TextView show;private Button btn_open;private Button btn_close;private Button btn_shake;private Button btn_shake_off;boolean IRBack;//各种功能的编码段int[] pattern = new int[] {  //0x45 开9000,4500,560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,560,1690,    560,565,   560,1690,    560,565,    560,565,    560,565,   560,1690,   560,565,560,565,   560,1690,    560,565,   565,1690,   565,1690,   560,1690,    560,565,    560,1690,9000,2250,  2250,94000, 9000,2250,  2250,94000};int[] pattern1 = new int[] {  //0x46 关9000,4500,560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,560,565,    560,1690,   560,1690,    560,565,    560,565,    560,565,   560,1690,   560,565,560,1690,   560,565,    560,565,   565,1690,   565,1690,   560,1690,    560,565,    560,1690,9000,2250,  2250,94000, 9000,2250,  2250,94000};int[] pattern2 = new int[] {  //0x44 启动摇头9000,4500,560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,560,565,    560,565,   560,1690,    560,565,    560,565,    560,565,   560,1690,   560,565,560,1690,   560,1690,    560,565,   565,1690,   565,1690,   560,1690,    560,565,    560,1690,9000,2250,  2250,94000, 9000,2250,  2250,94000};int[] pattern3 = new int[] {  //0x40 关闭摇头9000,4500,560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,    560,565,560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,   560,1690,560,565,    560,565,    560,565,    560,565,    560,565,    560,565,   560,1690,   560,565,560,1690,   560,1690,   560,1690,   565,1690,   565,1690,   560,1690,    560,565,    560,1690,9000,2250,  2250,94000, 9000,2250,  2250,94000};@Overrideprotected void onCreate(Bundle savedInstanceState) {IR=(ConsumerIrManager)getSystemService(CONSUMER_IR_SERVICE);//需要使用ConsumerIrManager类实现红外线的发送super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);inItEvent();initViewsAndEvents();btn_open.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {if (IRBack) {sendMsg(37900, pattern);//其中的pattern是遥控器所要实现的功能码show.setText("开机");} else {show.setText("对不起没有红外功能");}}});btn_close.setOnClickListener(new View.OnClickListener(){public void onClick(View v){if (IRBack) {sendMsg(37900, pattern1);show.setText("关了");} else {show.setText("对不起没有红外功能");}}});btn_shake.setOnClickListener(new View.OnClickListener(){public void onClick(View v){if (IRBack) {sendMsg(37900, pattern2);show.setText("摇头了");} else {show.setText("对不起没有红外功能");}}});btn_shake_off.setOnClickListener(new View.OnClickListener(){public void onClick(View v){if (IRBack) {sendMsg(37900, pattern3);show.setText("不摇头");} else {show.setText("对不起没有红外功能");}}});}
//判断手机是否有红外线功能private void inItEvent() {IR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);//???sdk?汾????4.4?????????к?????????????android?汾??if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {IRBack = IR.hasIrEmitter();if (!IRBack) {Toast.makeText(getApplicationContext(), "没有红外功能", Toast.LENGTH_SHORT).show();} else {Toast.makeText(getApplicationContext(), "有红外功能", Toast.LENGTH_SHORT).show();}}}@TargetApi(Build.VERSION_CODES.KITKAT)private void sendMsg(int carrierFrequency, int[] pattern) {IR.transmit(carrierFrequency, pattern);Toast.makeText(getApplicationContext(), "开了", Toast.LENGTH_SHORT).show();String content = null;for(int i = 0;i<pattern.length;i++){content += String.valueOf(pattern[i])+",";}show.setText(content+"\n"+(pattern.length)+"?????????");}private void initViewsAndEvents() {btn_open = (Button) findViewById(R.id.btn_1);btn_close=(Button)findViewById(R.id.btn_2);show=(TextView)findViewById(R.id.text_show);btn_shake=(Button)findViewById(R.id.btn_shake);btn_shake_off=(Button)findViewById(R.id.btn_shake_off);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementif (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}

要注意在AndroidManifest.xml中还要引入权限
<uses-permission android:name="android.permission.TRANSMIT_IR"/> <uses-feature android:name="android.hardware.ConsumerIrManager"/>

简单的Android 红外线遥控相关推荐

  1. android 电视遥控 编程,Android编程调用红外线遥控功能示例

    本文实例讲述了Android编程调用红外线遥控功能.分享给大家供大家参考,具体如下: Android API Demos中有红外线遥控的小例子,在网上找了很久相关的资料,发现比较少,或许找的方法不对. ...

  2. STC11F02实现红外线遥控开关

    临睡觉时下地闭灯是最讨厌做的一件事.本人为了解决闭灯问题,所以自制了一个红外线遥控开关.所需原料:废旧5V手机充电器,面包板(不要太大),STC11F02(手头只有这个,浪费了不少IO,推荐8脚STC ...

  3. KVG制作-【Arduino指纹解锁 智能家居系列-01】DIY自制的智能门禁,AS608指纹解锁+红外线遥控解锁。附演示视频。

    DIY自制的智能门禁,指纹解锁+红外线遥控解锁. DIY自制的智能门禁,指纹解锁+红外线遥控解锁. 材料准备 库文件 代码 注册指纹的代码 **寻找指纹并解锁** 视频演示地址 DIY自制的智能门禁, ...

  4. android类中定义颜色,自定义实现简单的Android颜色选择器(附带源码)

    在写Android App过程中需要一个简单的颜色选择器,Android自带的ColorPicker和网上的一些ColorPicker都太高端了,都实现了颜色渐变功能,我要的不需要那么复杂,只想提供几 ...

  5. 红外线遥控c语言程序,红外线遥控解码接收程序-c语言讲解学习.pdf

    红外线遥控解码接收程序 -C 语言 .txt 铁饭碗的真实含义不是在一个地方吃一辈子饭, 而是一 辈子到哪儿都有饭吃.就算是一坨屎,也有遇见屎壳郎的那天.所以你大可不必为今天的自 己有太多担忧.红外线 ...

  6. 红外接收器c语言软件,红外线遥控解码接收程序_C语言.doc

    红外线遥控解码接收程序_C语言.doc (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 红外线遥控解码接收程序-C语言.txt铁饭碗 ...

  7. 使用 Amazon Amplify快速创建简单的 Android 应用程序

    背景: 亚马逊云科技提供了100余种产品免费套餐.其中,计算资源Amazon EC2首年12个月免费,750小时/月:存储资源 Amazon S3 首年12个月免费,5GB标准存储容量. 大家好,我是 ...

  8. android,手机 遥控,

    Android手机遥控智能小车源码 - 下载频道 - CSDN.NETandroid手机控制电脑源码+android安全卫士源码 - 各类源码 - 中国红客联盟 - Powered by HUC安卓手 ...

  9. 简单的android游戏框架——zgf

    一.zgf是什么 我花了一周时间整理了以前写的代码,发现很多代码可以重用,于是就做了一个简单的android游戏开发框架,名字叫zxx43 game framework,简称zgf,这个游戏框架使用起 ...

  10. android实现mysql数据库存储_一个简单的Android端对象代理数据库系统的实现(二、执行+存储)...

    这是我之前在武汉大学彭智勇老师那边做过的一个对象代理数据库系统.文中给出了一整个系统的几乎所有代码,经测试可正常运行.文章比较长,超出了知乎的最长文章范围,因此分为两篇文章.这是第二篇. 执行 执行部 ...

最新文章

  1. valve 的设计_向Valve Portal开发人员学习游戏设计原则
  2. [干货]我如何考察面试者的机器学习水平
  3. 数据库性能测试方案示例
  4. DS18B20 理解与操作源码
  5. 面试mysql中怎么创建索引_阿里面试:MySQL如何设计索引更高效?
  6. 请求分页内存管理的模拟 c++代码_C开发实战-内存管理
  7. 好奇!仅 13kB 大小的游戏,源码长啥样?
  8. Vue根据菜单json数据动态按需加载路由Vue-router
  9. ssl/tls服务器瞬时_SSL / TLS REST服务器–带有Spring和TomEE的客户端
  10. 通过特性动态获取属性及值
  11. SAP License:赠品处理原理浅析
  12. 数值计算方法第一章—数值计算引论
  13. ansys命令流——坐标系与工作平面(基础操作)
  14. word 2016 页码从任意页开始
  15. 领导与管理的区别与联系
  16. 【解决笔记本电脑声音音量低的方法】
  17. python中“羊车门问题”的简单分析与代码实现
  18. am335x开发板的疑问以及解答
  19. 设计模式(初探工厂与代理模式)——学习记录
  20. 关于各种牌子手机的字体问题

热门文章

  1. 谢烟客-----Linux的发展史
  2. Windows系统资源监控工具perfmon
  3. 今日头条Go建千亿级微服务的实践
  4. wechat sdk java_使用java集成微信支付sdk。
  5. Spark MLlib数据挖掘2--基础统计分析
  6. 【采坑】CocosCreator 使用对象池再次创建对象创建节点时出现的某明的bug,节点使用了动作系统
  7. 2.6 Abbreviation( 缩 写)
  8. Navigation Bar的背景图片设置
  9. 微信小程序添加卡券到微信卡包,使用wx.addCard()方法传参及整体流程
  10. 关于中国电信天翼开放平台短信接口的一些使用