FileDocCategorySizeDatePackage
ConsumerIrManager.javaAPI DocAndroid 5.1 API4950Thu Mar 12 22:22:10 GMT 2015android.hardware

ConsumerIrManager

public final class ConsumerIrManager extends Object
Class that operates consumer infrared on the device.

To obtain an instance of the system infrared transmitter, call {@link android.content.Context#getSystemService(java.lang.String) Context.getSystemService()} with {@link android.content.Context#CONSUMER_IR_SERVICE} as the argument.

Fields Summary
private static final String
TAG
private final String
mPackageName
private final IConsumerIrService
mService
Constructors Summary
public ConsumerIrManager(android.content.Context context)

hide
to prevent subclassing from outside of the framework


                  
       
        mPackageName = context.getPackageName();
        mService = IConsumerIrService.Stub.asInterface(
                ServiceManager.getService(Context.CONSUMER_IR_SERVICE));
    
Methods Summary
public android.hardware.ConsumerIrManager$CarrierFrequencyRange[]getCarrierFrequencies()
Query the infrared transmitter's supported carrier frequencies

return
an array of {@link android.hardware.ConsumerIrManager.CarrierFrequencyRange} objects representing the ranges that the transmitter can support, or null if there was an error communicating with the Consumer IR Service.

        if (mService == null) {
            Log.w(TAG, "no consumer ir service.");
            return null;
        }

        try {
            int[] freqs = mService.getCarrierFrequencies();
            if (freqs.length % 2 != 0) {
                Log.w(TAG, "consumer ir service returned an uneven number of frequencies.");
                return null;
            }
            CarrierFrequencyRange[] range = new CarrierFrequencyRange[freqs.length / 2];

            for (int i = 0; i < freqs.length; i += 2) {
                range[i / 2] = new CarrierFrequencyRange(freqs[i], freqs[i+1]);
            }
            return range;
        } catch (RemoteException e) {
        }
        return null;
    
public booleanhasIrEmitter()
Check whether the device has an infrared emitter.

return
true if the device has an infrared emitter, else false.

        if (mService == null) {
            Log.w(TAG, "no consumer ir service.");
            return false;
        }

        try {
            return mService.hasIrEmitter();
        } catch (RemoteException e) {
        }
        return false;
    
public voidtransmit(int carrierFrequency, int[] pattern)
Transmit an infrared pattern

This method is synchronous; when it returns the pattern has been transmitted. Only patterns shorter than 2 seconds will be transmitted.

param
carrierFrequency The IR carrier frequency in Hertz.
param
pattern The alternating on/off pattern in microseconds to transmit.

        if (mService == null) {
            Log.w(TAG, "failed to transmit; no consumer ir service.");
            return;
        }

        try {
            mService.transmit(mPackageName, carrierFrequency, pattern);
        } catch (RemoteException e) {
            Log.w(TAG, "failed to transmit.", e);
        }