【问题标题】:Wifi RSSI readingWifi RSSI 读取
【发布时间】:2015-02-02 12:51:41
【问题描述】:

嗨,这是我的第一个问题,因为我是 android 世界程序的新手

我想读取 wifi rssi 并将其显示在列表中 我写了下面的代码,当在我的手机上运行它时,程序停止并说“对不起程序停止” 不知道为什么???谁能帮帮我???

public class MainActivity extends ActionBarActivity {

    ListView list;
    WifiManager wifiManager;
    IntentFilter filter;
    String wifi [];
    WifiScanClass myClass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list=(ListView)findViewById(R.id.list1);
        wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
         myClass = new WifiScanClass();
                    registerReceiver(myClass,new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
                    wifiManager.startScan();
    }
    protected void onResume()
    {
        filter=new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
        registerReceiver(myClass,filter);
        super.onResume();
    }
    protected void onPause()
    {
        unregisterReceiver(myClass);
        super.onPause();
    }

    class WifiScanClass extends BroadcastReceiver {
        @SuppressLint("UseValueOf")
        public void onReceive(Context context, Intent intent) {
            List<ScanResult> listResult=wifiManager.getScanResults();
            wifi=new String[listResult.size()];
            int i;
            for (i=0;i<listResult.size();i++);
            wifi[i]=((listResult.get(i)).toString());
            list.setAdapter(new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,wifi));

        }
    }
}

【问题讨论】:

标签: android wifi android-wifi


【解决方案1】:

请为错误添加 Logcat 输出。 问题的一个可能来源可能是需要在提供的上下文上调用 getApplicationContext()。所以尝试用 context.getApplicationContext() 替换 getApplicationContext()。

【讨论】:

    【解决方案2】:
    public class MainActivity extends ActionBarActivity {
    
        ListView list;
        WifiManager wifiManager;
        IntentFilter filter;
        String wifi [];
        WifiScanClass myClass;
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
    
    
            list=(ListView)findViewById(R.id.list1);
            wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
            myClass = new WifiScanClass();
            wifiManager.startScan();
    
    
        }
    
    
        protected void onResume()
        {
            filter=new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
            registerReceiver(myClass,filter);
            super.onResume();
    
        }
    
        protected void onPause()
        {
    
            unregisterReceiver(myClass);
            super.onPause();
    
        }
    
        class WifiScanClass extends BroadcastReceiver {
    
    
            @SuppressLint("UseValueOf")
            public void onReceive(Context context, Intent intent) {
                List<ScanResult> listResult=wifiManager.getScanResults();
                wifi=new String[listResult.size()];
    
                int i;
                for (i=0;i<listResult.size();i++)
    
                    wifi[i]=((listResult.get(i)).toString());
    
                list.setAdapter(new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,wifi));
    
    
            }
        }
    }
    

    我终于找到了错误

    ";"在 for 循环中。

    【讨论】:

    • 您犯了一个简单的错误(我们都犯了),但保留这个问题没有意义,因为无法从中学到任何具体的东西。所以:请删除您的问题!
    猜你喜欢
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 2013-07-02
    相关资源
    最近更新 更多