Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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 如何在android studio中基于Wifi路由器显示MAC地址和RSSI信息?_Java_Android_Android Studio_Mac Address_Rssi - Fatal编程技术网

Java 如何在android studio中基于Wifi路由器显示MAC地址和RSSI信息?

Java 如何在android studio中基于Wifi路由器显示MAC地址和RSSI信息?,java,android,android-studio,mac-address,rssi,Java,Android,Android Studio,Mac Address,Rssi,这是我之前的代码,请帮助我。使用WifiManager可以获取Mac地址 Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; View view = convertView; if (view == null) { view = inflater.inflate(R.layout.list_item, null);

这是我之前的代码,请帮助我。

使用WifiManager可以获取Mac地址

Override
public View getView(int position, View convertView, ViewGroup parent) {

    Holder holder;
    View view = convertView;

    if (view == null) {
        view = inflater.inflate(R.layout.list_item, null);
        holder = new Holder();
        holder.tvDetails = (TextView) view.findViewById(R.id.txtWifiName);
        view.setTag(holder);
    }
    else {
        holder = (Holder)view.getTag();
    }

    holder.tvDetails.setText(wifilist.get(position).SSID + "\n" + (wifilist.get(position).BSSID));
    return view;
}
使用WifiInfo可以获得SSID
WifiInfo.getSSID()
和RSSI
WifiInfo.getRssi()


这是我在ListAdapter.java类上的完整代码

 WifiInfo wifiInfo = wifiManager.getConnectionInfo();
  int ipAddress = wifiInfo.getIpAddress();
public class ListAdapter extends BaseAdapter {

Context context;
LayoutInflater inflater;
List<ScanResult> wifilist;

public ListAdapter(Context context, List<ScanResult> wifilist) {

    this.context = context;
    this.wifilist = wifilist;
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return wifilist.size();
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Holder holder;
    View view = convertView;

    if (view == null) {
        view = inflater.inflate(R.layout.list_item, null);
        holder = new Holder();
        holder.tvDetails = (TextView) view.findViewById(R.id.txtWifiName);
        view.setTag(holder);
    }
    else {
        holder = (Holder)view.getTag();
    }

    holder.tvDetails.setText(wifilist.get(position).SSID + "\n" + (wifilist.get(position).BSSID));
    return view;

}
class Holder{
    TextView tvDetails;
}

}

这是否回答了您的问题?不完全正确,先生。但是谢谢你!抱歉,我不知道代码要写在哪里?bcs不工作了,先生。这是我关于“ListAdapter.java”类的完整代码:我使用RecyclerView.ViewHolderPost编写活动类代码。这样你会得到更多的帮助好的,先生。下面是我的完整代码。谢谢你,先生!
public class ListAdapter extends BaseAdapter {

Context context;
LayoutInflater inflater;
List<ScanResult> wifilist;

public ListAdapter(Context context, List<ScanResult> wifilist) {

    this.context = context;
    this.wifilist = wifilist;
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return wifilist.size();
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Holder holder;
    View view = convertView;

    if (view == null) {
        view = inflater.inflate(R.layout.list_item, null);
        holder = new Holder();
        holder.tvDetails = (TextView) view.findViewById(R.id.txtWifiName);
        view.setTag(holder);
    }
    else {
        holder = (Holder)view.getTag();
    }

    holder.tvDetails.setText(wifilist.get(position).SSID + "\n" + (wifilist.get(position).BSSID));
    return view;

}
class Holder{
    TextView tvDetails;
}
public class AP extends AppCompatActivity {
    WifiManager wifiManager;
    WifiReceiver wifiReceiver;
    ListAdapter listAdapter;
    ListView wifilist;
    List mywifilist;


    @SuppressLint("WifiManagerLeak")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_ap);

            wifilist = (ListView)findViewById(R.id.mylistview);
            wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
            wifiReceiver = new WifiReceiver();


            registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

            if(ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED){
                    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 0);
            }
            else{
                    scanWifiList();
            }
    }

    private void scanWifiList() {
            wifiManager.startScan();
            mywifilist = wifiManager.getScanResults();
            setAdapter();
    }

    private void setAdapter() {
            listAdapter = new ListAdapter(getApplicationContext(),mywifilist);
            wifilist.setAdapter(listAdapter);
    }

    class  WifiReceiver extends BroadcastReceiver{
            @Override
            public void onReceive(Context context, Intent intent) {
            }
    }