使用ConsumerIRService时出错-22

时间:2014-10-27 02:59:37

标签: java android

我正在编写一个在M8中使用IR发射器的程序。我查看了所有可以找到的样本,并且不知道我做错了什么。以下是我的代码中的一些片段:

MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null)
    {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }

    int[] pattern = {22, 22};

    ConsumerIrManager irManager = (ConsumerIrManager) getApplicationContext().getSystemService(Context.CONSUMER_IR_SERVICE);

    if (irManager != null)
    {
        if (irManager.hasIrEmitter())
        {
            try
            {
                while (true)
                {
                    // transmit the pattern at 38KHz
                    irManager.transmit(38000, pattern);
                }
            } catch (Exception e)
            {
                String message = e.getMessage();
            }
        }
    }
}

这是AndroidManifest.xml

<uses-sdk
    android:minSdkVersion="19"
    android:targetSdkVersion="21" />

<uses-permission android:name="android.permission.TRANSMIT_IR" />

运行此程序时,出现以下错误

10-26 18:00:32.703     947-1735/? E/ConsumerIrService﹕ Error transmitting: -18
10-26 18:00:32.713     947-1443/? E/ConsumerIrService﹕ Error transmitting: -22
10-26 18:00:32.843      947-958/? E/ConsumerIrService﹕ Error transmitting: -18
10-26 18:00:32.863     947-1514/? E/ConsumerIrService﹕ Error transmitting: -22

此时我只是试图让红外LED开启,因此真正的循环使我能够拿到相机并检查红外LED是否正在发射。

我尝试了各种模式,在上面的代码片段中,为了简洁起见,我将其简化为简单模式。我已经使用了看到红外线的相机来验证红外LED实际上没有为这个程序启动,而它确实适用于其他程序(例如HTC的电视应用程序)。我试过从Eclipse和Android Studio运行它。在我的搜索中,似乎错误-22是一个无效参数,但我不确定我是否给出了无效参数,或者无效参数是否在发送函数中发生了多个层。

注意:虽然我在try块中有传输调用,但运行此代码时不会触发异常。

0 个答案:

没有答案