Откуда приходит значение намерения, при котором я вызываю функцию getAction ()? (Это переопределенный метод класса BroadcastReceiver) - PullRequest
0 голосов
/ 19 февраля 2020

Я создал класс приемника вещания, который работает нормально. Я не понимаю, откуда значение намерения входит в метод onReceive.

 @Override
    public void onReceive(Context context, Intent intent) {

       String action = intent.getAction();

       if(wifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action))
       {
           int state=intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE,-1);

           if(state==WifiP2pManager.WIFI_P2P_STATE_ENABLED){
               Toast.makeText(context,"Wifi is ON",Toast.LENGTH_SHORT).show();
           }
           else 
           {
               Toast.makeText(context,"Wifi is OFF",Toast.LENGTH_SHORT).show();
           }
        }
}

Основной код действия, в котором я создал фильтр намерений, в который я добавил действие.

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

        wifiP2pManager =  (WifiP2pManager) 

getSystemService(Context.WIFI_P2P_SERVICE);
    channel = wifiP2pManager.initialize(this,getMainLooper(),null);

        broadcastReceiver = new WiFiDirectBroadcastReceiver(wifiP2pManager, channel, this);

      intentFilter =  new IntentFilter();
        intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);



        }

1 Ответ

1 голос
/ 19 февраля 2020

Если ваш BroadcastReceiver работает, то вы должны инициализировать wifiP2pManager и вызвать функцию для объекта. Когда состояние изменяется, передается намерение. С получателем вы подписываетесь на эти намерения.

Подробнее о WifiP2pManager вы можете прочитать в Android документации Обзор Wi-Fi Direct (одноранговый или P2P)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...