Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我调用getAction()函数的意图值来自何处?(这是BroadcastReceiver类的重写方法)_Java_Android_Android Studio_Broadcastreceiver - Fatal编程技术网

Java 我调用getAction()函数的意图值来自何处?(这是BroadcastReceiver类的重写方法)

Java 我调用getAction()函数的意图值来自何处?(这是BroadcastReceiver类的重写方法),java,android,android-studio,broadcastreceiver,Java,Android,Android Studio,Broadcastreceiver,我已经创建了一个广播接收器类,它工作得很好。我对onReceive方法中意图的价值从何而来感到困惑 @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(wifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {

我已经创建了一个广播接收器类,它工作得很好。我对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);



        }

如果您的BroadcastReceiver正常工作,则您必须已初始化
wifiP2pManager
,并调用对象上的函数。当状态改变时,正在广播一个意图。有了接收者,你就同意了这些意图


您可以在Android文档中阅读关于WifiP2pManager的更多详细信息

我还添加了初始化WifiP2pManager的代码。你说的状态变化是什么意思?您的意思是系统状态的改变,即wifi是否开启?这一变化将通过这一意图得到通知。请再解释一下。谢谢如果
wifiP2pManager
发现、连接等,则状态将更改,并且管理器将广播意图。因此,如果您收到一个意图,它来自
wifiP2pManager