主要目的: 新近读取接入点的属性并使用它。
我尝试将自定义的BroadcastReceiver类添加到我的活动中。
如果是真的;我了解到了;意图行动后onReceive
运行,
(此处:WifiManager.SCAN_RESULTS_AVAILABLE_ACTION
)。
但我认为我必须等到onReceive
完成后才能获得新的r11。
当我调试方法“useResults”时;
public class MainActivity extends ActionBarActivity implements OnTouchListener{
int r11=0;
public void useResults(){
mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
receiverWifi = new WifiReceiver();
registerReceiver(receiverWifi, new IntentFilter( WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();
//use r11
//modify r11
//do something with r11
}
@Override
protected void onPause() {
unregisterReceiver(receiverWifi);
super.onPause();
}
@Override
protected void onResume() {
registerReceiver(receiverWifi, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
super.onResume();
}
class WifiReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
wifiList = mainWifi.getScanResults();
for (ScanResult result0:wifiList) {
String ssid0 = result0.SSID;
if(ssid0.compareTo("anID")==0){
r11=result0.level;
}
}
}
}
}
答案 0 :(得分:1)
BroadcastReceiver
是一个内部类,使用它来调用类上的方法没有任何错误或肮脏。这就是内在阶级的用途。
只需创建一个单独的方法
void doR11Results(){
//use r11
//modify r11
//do something with r11
}
...并从onReceive
拨打电话。超级简单!