Java 宽频广播接收器不工作

Java 宽频广播接收器不工作,java,android,broadcastreceiver,wifimanager,Java,Android,Broadcastreceiver,Wifimanager,首先,我会提示用户是否打开wifi。 如果关闭,我想打开wifi,扫描所有可用的wifi网络,并根据其ssid连接到某个网络。 我想注册一个宽频广播接收器,等待WifiManager完成扫描结果 public class Project1 extends Activity { /** * Called when the activity is first created. */ EditText userName;

首先,我会提示用户是否打开wifi。 如果关闭,我想打开wifi,扫描所有可用的wifi网络,并根据其ssid连接到某个网络。
我想注册一个宽频广播接收器,等待WifiManager完成扫描结果

     public class Project1 extends Activity {

        /**
         * Called when the activity is first created.
         */
        EditText userName;
        EditText passWord;
        Button button;
        TextView thankYou;
        WifiManager wifiManager;
        List<ScanResult> results1;
        BroadcastReceiver receiver;
    public Boolean connectToNetworK() {
            Log.e("Start of connect","Debug");
            Log.e("before wifi manager of connect","Debug");
            if(!wifiManager.isWifiEnabled()){
                Log.e("wifi is not enabled","Debug");
                wifiManager.setWifiEnabled(true);
            }

            Log.e("after wifi manager of connect","Debug");
            List<ScanResult>results =null; 
            Log.e("after scan result = null","Debug");
            while(!wifiManager.isWifiEnabled())
            {
                Log.e("wifi still off","Debug");
            }
            Log.e("wifi is on","Debug");
            Log.e("starting scan","Debug");
            wifiManager.startScan();


            Log.e("waiting","Debug");
            if(results1!=null && !results1.isEmpty())
            {
                Log.e("Results1 is not emplty","Debug");
            }
    }
    @Override
        public void onStop()
        {
            unregisterReceiver(receiver);
        }
    public void onCreate(Bundle savedInstanceState) {
            final Context contex = this;
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    if(receiver == null){
                Log.e("Registering reciver","mark");
                receiver = new BroadcastReceiver(){
                    @Override
                    public void onReceive(Context context, Intent intent){
                        Log.e("In broad cast reciver","mark");
                        results1 =wifiManager.getScanResults();
                    }
                };
                registerReceiver(receiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

            }
    }
if (!mWifi.isConnected()) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
            alert.setTitle("Please Open the Wifi");
            alert.setMessage("Your Wifi is Currently Turned off, Would You like to turn it on?");
            alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    //WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
                    if(connectToMobinilNetworK())
                    {
                        AfterWifiIsOn();
                    }
                    else{
                        Intent intent = new Intent(contex, ErrorPage.class);
                        startActivity(intent);}
                }
            });
            alert.setNegativeButton("No", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Intent intent = new Intent(contex, ErrorPage.class);
                    startActivity(intent);
                }
            });
            alert.show();
        }    }
}
    }
The list of scan resutls are always empty and the logs inside the broadcast receiver is not written.
Thanks in advance.
公共类项目1扩展活动{
/**
*在首次创建活动时调用。
*/
编辑文本用户名;
编辑文本密码;
按钮;
谢谢你;
WifiManager WifiManager;
列出结果1;
广播接收机;
公共布尔连接网络(){
Log.e(“连接开始”、“调试”);
Log.e(“连接的wifi管理器之前”、“调试”);
如果(!wifiManager.isWifiEnabled()){
Log.e(“未启用wifi”,“调试”);
wifiManager.setWifiEnabled(true);
}
Log.e(“连接的wifi管理器之后”、“调试”);
Listresults=null;
Log.e(“扫描结果后=null”,“调试”);
而(!wifiManager.isWifiEnabled())
{
Log.e(“wifi仍处于关闭状态”、“调试”);
}
Log.e(“wifi开启”、“调试”);
Log.e(“开始扫描”、“调试”);
wifiManager.startScan();
Log.e(“等待”、“调试”);
if(results1!=null&&!results1.isEmpty())
{
Log.e(“结果1不是雇员”,“调试”);
}
}
@凌驾
公共void onStop()
{
未注册接收人(接收人);
}
创建时的公共void(Bundle savedInstanceState){
最终上下文上下文=此;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wifiManager=(wifiManager)getSystemService(Context.WIFI_服务);
如果(接收器==null){
Log.e(“注册接收器”、“标记”);
接收器=新的广播接收器(){
@凌驾
公共void onReceive(上下文、意图){
Log.e(“宽频带接收器”、“标记”);
results1=wifiManager.getScanResults();
}
};
registerReceiver(接收器,新的意向过滤器(WifiManager.SCAN\u RESULTS\u AVAILABLE\u ACTION));
}
}
如果(!mWifi.isConnected()){
AlertDialog.Builder alert=新建AlertDialog.Builder(此);
alert.setTitle(“请打开Wifi”);
alert.setMessage(“您的Wifi当前已关闭,是否要打开?”);
alert.setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
//WifiManager wifi=(WifiManager)getSystemService(Context.wifi\u SERVICE);
if(connectToMobinilNetworK())
{
后遗症();
}
否则{
意向意向=新意向(contex,ErrorPage.class);
星触觉(意图);}
}
});
alert.setNegativeButton(“否”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
意向意向=新意向(contex,ErrorPage.class);
星触觉(意向);
}
});
alert.show();
}    }
}
}
扫描结果列表始终为空,且未写入广播接收器内的日志。
提前谢谢。

您是否在AndroidManifest中设置了正确的权限?根据,您的权限应该如下所示:

<uses-sdk android:minSdkVersion="14" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

是的,我已经包括了所有这些权限