概要
Androidアプリ向け赤外線送信方法
実装
記事にする事
- Androidで赤外線通信する方法
詳細
大きく以下をする事で赤外線センサーを使う事が出来る
- Android 4.4以上にする
- ConsumerIrManagerを使用し赤外線センサを取得する
- AndroidManifest.xmlのpermissionにandroid.permission.TRANSMIT_IRを追加する
ConsumerIrManager
準備
DeviceChoiceActivity.java
ConsumerIrManager ir = (ConsumerIrManager)getSystemService(CONSUMER_IR_SERVICE);
として実体を取得する
hasIrEmitter()がfalseの場合使用できないデバイスなので諦める
より良くは、
DeviceChoiceActivity.java
ConsumerIrManager ir = (ConsumerIrManager)getSystemService(CONSUMER_IR_SERVICE);
ConsumerIrManager.CarrierFrequencyRange[] ranges = ir.getCarrierFrequencies();
for(int i = 0; i < ranges.length; i++)
{
if(ranges[i].getMinFrequency() < 任意の周波数 && ranges[i].getMaxFrequency() > 任意の周波数)
{
// 使用可能!
}
}
送信
CommandChoiceActivity.java
if(mIR.hasIrEmitter())
{
mIR.transmit(ir.CarrierFrequency(), ir.MakeData(data));
}
送信時の赤外線のOn/Offの時間をマイクロ秒でint配列に詰め込む
例)
10マイクロ秒On、20マイクロ秒Off、15マイクロ秒On
// 最後にOFFする事も考慮した配列にしている
int[] datas = new int[]{10, 20, 15, 1};
AndroidManifest.xml
記載例
コピれば良い
<uses-permission android:name="android.permission.TRANSMIT_IR" />