LoginSignup
0
3

More than 1 year has passed since last update.

AndroidでIR(赤外線通信)

Last updated at Posted at 2021-09-25

Androidで赤外線送信を行います。

受信は取り扱いません。(私の端末が非対応)
Androidには赤外線通信対応している端末と、していない端末があるので注意してください。

ConsumerIrManagerクラスを使用するだけで簡単に実装できます。
このクラスはandrod.hardwareパッケージに入っていますが、このパッケージにはカメラとかセンサとか扱う系のやつが入っていて面白そうです。


android端末が赤外線通信に対応しているか


ConsumerIrManager irM = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
((TextView) findViewById(R.id.text)).setText(irM.hasIrEmitter() ? "この端末で使用できます" : "この端末では使用できません");
//hasIrEmitter()は赤外線が使用できるならtrue,そうでなければfalseです。



赤外線をAndroid端末から送信
    //carrierFrequency  :ヘルツ単位のIRキャリア周波数。 →大抵38000で問題なし。各自で調べる
    //pattern           :送信するマイクロ秒単位の交互のオン/オフパターン。 int配列
    irM.transmit(38000, pattern);//送信



使用例
import androidx.appcompat.app.AppCompatActivity;
import android.hardware.ConsumerIrManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    ConsumerIrManager irM;
    int[] pattern;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ((Button) findViewById(R.id.sendButton)).setOnClickListener(this);

        irM = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);

        ((TextView) findViewById(R.id.text)).setText(irM.hasIrEmitter() ? "この端末で使用できます" : "この端末では使用できません");

        赤外線パターン
        pattern = new int[]{3534, 1735, 466, 419, 466};//...省略



    }

    @Override
    public void onClick(View v) {
        //carrierFrequency  :ヘルツ単位のIRキャリア周波数。 →大抵38000らしい?
        //pattern           :送信するマイクロ秒単位の交互のオン/オフパターン。
        irM.transmit(38000, pattern);
    }
}


0
3
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
0
3