LoginSignup
8
9

More than 5 years have passed since last update.

Android向け赤外線送信アプリ作成した時の備忘録

Last updated at Posted at 2016-09-23

概要

Androidアプリ向け赤外線送信方法

実装

記事にする事

  • Androidで赤外線通信する方法

詳細

大きく以下をする事で赤外線センサーを使う事が出来る

  • Android 4.4以上にする
  • ConsumerIrManagerを使用し赤外線センサを取得する
  • AndroidManifest.xmlのpermissionにandroid.permission.TRANSMIT_IRを追加する

ConsumerIrManager

準備

DeviceChoiceActivity.java

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

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" />
8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9