怎么在Android中调用红外线遥控功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司是一家从事企业网站建设、做网站、成都做网站、行业门户网站建设、网页设计制作的专业网站设计公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点上1000+。具体如下:
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());// 显示结果 } }; }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。