扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
怎么在Android中调用红外线遥控功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联建站专业为企业提供石楼网站建设、石楼做网站、石楼网站设计、石楼网站制作等企业网站建设、网页设计与制作、石楼企业网站模板建站服务,十多年石楼做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
具体如下:
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());// 显示结果 } }; }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流