2
package com.example.phoneled;

import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.view.Menu;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ToggleButton;

public class LedOnOff extends Activity {
    ToggleButton tb;
    final int ID_LED = 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_led_on_off);

        tb = (ToggleButton) findViewById(R.id.toggleButton1);
        tb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                // TODO Auto-generated method stub
                NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                Notification notification = new Notification();
                notification.ledARGB = 0xFF0000; // 0xFF0000 red,0x00FF00 green
                notification.ledOnMS = 100;
                notification.ledOffMS = 200;
                notification.flags = Notification.FLAG_SHOW_LIGHTS;
                nm.notify(ID_LED, notification);
//              nm.cancel(ID_LED);
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_led_on_off, menu);
        return true;
    }
}

上記のコードは、私の Android フォンの LED を駆動するためのものです: HTC Sensation XE G18。しかし、うまくいきません。エラーや警告は表示されませんが、実際の LED はまったく点滅しません (赤色にもなりません)。同様のコードは、どこでもインターネット上で見つけることができます。何が恋しいのかわからない。何か助けはありますか?ありがとう!

4

2 に答える 2

2

すぐに気づいたいくつかの問題があります。

  1. たとえば、デフォルトでは設定されていない Notification クラスの特定のメンバーを設定する必要がありますNotification#icon

    icon : ステータス バーのアイコンとして使用するドローアブルのリソース ID。これは必須です。アイコン リソースが無効な通知は表示されません。

  2. 私の HTC は、他の多くのデバイスと同様に、カスタム LED パターンまたは色を受け入れません。OSのデフォルトのみを使用します...

于 2012-10-10T16:37:04.277 に答える
0

色を に変更してみてください0xFFFF0000。それはARGBであるはずであり、ドキュメントによると:

LED をオフにするには、colorARGB のアルファ チャネルに 0 を渡すか、ledOnMS と ledOffMS の両方に 0 を渡します。

于 2012-10-10T16:06:38.293 に答える