Java 为什么列表总是空的?
在这段代码中,我正在搜索wifi接入点,并在文本视图中显示结果。。。。它在三星手机上运行良好,但由于某些原因,在其他手机上,列表总是空的 你能帮我理解为什么列表总是空的吗?我将非常感激Java 为什么列表总是空的?,java,android,Java,Android,在这段代码中,我正在搜索wifi接入点,并在文本视图中显示结果。。。。它在三星手机上运行良好,但由于某些原因,在其他手机上,列表总是空的 你能帮我理解为什么列表总是空的吗?我将非常感激 public class MainActivity extends AppCompatActivity { Switch aswitch; int n=1; TextView text; WifiManager wifi; String message; @Ove
public class MainActivity extends AppCompatActivity {
Switch aswitch;
int n=1;
TextView text;
WifiManager wifi;
String message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
aswitch=(Switch)findViewById(R.id.myswitch);
wifi=(WifiManager)getSystemService(WIFI_SERVICE);
text=(TextView)findViewById(R.id.mytv);
aswitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// do something, the isChecked will be
// true if the switch is in the On position
if (isChecked && !wifi.isWifiEnabled()) {
wifi.setWifiEnabled(true);
message="enabled";
text.setText(message);
} else if (!isChecked && wifi.isWifiEnabled()){
wifi.setWifiEnabled(false);
message="disabled";
text.setText(message);
}
}
});
MyBroadcastReceiver broadcast=new MyBroadcastReceiver();
registerReceiver(broadcast, new IntentFilter(wifi.SCAN_RESULTS_AVAILABLE_ACTION));
}
class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
StringBuffer stringBuffer=new StringBuffer();
List<ScanResult> list=wifi.getScanResults();
for(ScanResult scanResult:list){
String ssid0 = scanResult.SSID;
int rssi0 = scanResult.level;
String rssiString0 = String.valueOf(rssi0);
stringBuffer.append("\n SSID:" + ssid0 + " RSSI:" + rssiString0 +"dBm");
text.setText("yes");
}
text.setText(stringBuffer);
if(wifi.isWifiEnabled()){
wifi.startScan();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
public类MainActivity扩展了AppCompatActivity{
开关;
int n=1;
文本查看文本;
WifiManager-wifi;
字符串消息;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
aswitch=(开关)findviewbyd(R.id.myswitch);
wifi=(WifiManager)getSystemService(wifi_服务);
text=(TextView)findViewById(R.id.mytv);
setOnCheckedChangeListener(新建CompoundButton.OnCheckedChangeListener(){
检查更改后的公共无效(复合按钮视图,布尔值已检查){
//做点什么,被检查的人就会
//如果开关处于接通位置,则为真
如果(isChecked&!wifi.isWifiEnabled()){
wifi.setWifiEnabled(true);
message=“enabled”;
text.setText(消息);
}否则,如果(!isChecked&&wifi.isWifiEnabled()){
wifi.setWifiEnabled(假);
message=“已禁用”;
text.setText(消息);
}
}
});
MyBroadcastReceiver广播=新的MyBroadcastReceiver();
registerReceiver(广播、新意向过滤器(wifi.SCAN\u RESULTS\u AVAILABLE\u ACTION));
}
类MyBroadcastReceiver扩展了BroadcastReceiver{
@凌驾
公共void onReceive(上下文、意图){
StringBuffer StringBuffer=新的StringBuffer();
List List=wifi.getScanResults();
用于(扫描结果扫描结果:列表){
字符串ssid0=scanResult.SSID;
int rssi0=scanResult.level;
String rssiString0=String.valueOf(rssi0);
追加(“\n SSID:+ssid0+”RSSI:+rssiString0+”dBm”);
text.setText(“是”);
}
setText(stringBuffer);
if(wifi.isWifiEnabled()){
wifi.startScan();
}
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
看起来很奇怪,您必须在清单中声明精细或粗糙的位置权限。不久前我自己也有这个问题 startScan()
是异步的。链接可能重复…列表仍然为空我添加了这些权限,列表仍然为空。如果您正在使用api 23+的设备上测试,请检查这些权限是否已授予。我已从用户输入中授予权限,列表仍然为空…我还需要做些什么?