2

バックグラウンドでWIFI_STATE_CHANGED_ACTIONをチェックするために、サービスからBroadcastReceiverを登録しようとしています。これまでのところ、コンパイルエラーはありません..しかし!

私が行ったり試したりしたことは何でも、 onReceive() コードに到達することはありませんでした。ハードウェア デバイスでテストし、Wi-Fi のオンとオフを切り替えていますが、何も起こりません。同様に、マニフェストにサービス/レシーバーを登録し、デモやチュートリアル、本から見つけたすべてを行いました^^ (サービスを使用しているのは、BroadcastReceiver をバックグラウンドで実行し、必要に応じて動作させるためだけです..)

だからここに私のコードがあります:

「私のアクティビティクラス」

public class MainActivity extends Activity {


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

        startService(new Intent(this, IntelliRingService.class));
    }

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

「私のサービスクラス」

public class IntelliRingService extends Service {


    public BroadcastReceiver myWifiBroadcastReceiver = new BroadcastReceiver() {


        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub

            final String action = intent.getAction();

            if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION))
            {
                // DO SOMETHING
            }
        }
    };

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();

        IntentFilter theFilter;
        theFilter = new IntentFilter();
        theFilter.addAction(WIFI_SERVICE);

        getApplicationContext().registerReceiver(myWifiBroadcastReceiver, theFilter);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub

         return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        getApplicationContext().unregisterReceiver(myWifiBroadcastReceiver);
    }
}
4

0 に答える 0