Java 如何在android studio中基于Wifi路由器显示MAC地址和RSSI信息?
这是我之前的代码,请帮助我。使用WifiManager可以获取Mac地址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);
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可以获得SSIDWifiInfo.getSSID()
和RSSIWifiInfo.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) {
}
}