这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要介绍了Android编程调用红外线遥控功能,结合实例形式分析了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程序设计有所帮助。
来源: http://www.phperz.com/article/17/0912/345759.html