|
|
@ -8,6 +8,7 @@ import androidx.annotation.NonNull;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
|
|
|
|
|
|
|
|
|
import android.Manifest;
|
|
|
|
import android.Manifest;
|
|
|
|
import android.app.AlertDialog;
|
|
|
|
import android.app.AlertDialog;
|
|
|
@ -18,8 +19,6 @@ import android.content.Intent;
|
|
|
|
import android.content.IntentFilter;
|
|
|
|
import android.content.IntentFilter;
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.graphics.Color;
|
|
|
|
|
|
|
|
import android.graphics.Typeface;
|
|
|
|
|
|
|
|
import android.net.ConnectivityManager;
|
|
|
|
import android.net.ConnectivityManager;
|
|
|
|
import android.net.Network;
|
|
|
|
import android.net.Network;
|
|
|
|
import android.net.NetworkCapabilities;
|
|
|
|
import android.net.NetworkCapabilities;
|
|
|
@ -31,29 +30,29 @@ import android.net.wifi.WifiInfo;
|
|
|
|
import android.net.wifi.WifiManager;
|
|
|
|
import android.net.wifi.WifiManager;
|
|
|
|
import android.net.wifi.WifiNetworkSpecifier;
|
|
|
|
import android.net.wifi.WifiNetworkSpecifier;
|
|
|
|
import android.net.wifi.WifiNetworkSuggestion;
|
|
|
|
import android.net.wifi.WifiNetworkSuggestion;
|
|
|
|
|
|
|
|
import android.os.Build;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Handler;
|
|
|
|
import android.os.Handler;
|
|
|
|
import android.os.Parcelable;
|
|
|
|
import android.os.Parcelable;
|
|
|
|
|
|
|
|
import android.provider.Settings;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.text.format.Formatter;
|
|
|
|
import android.text.format.Formatter;
|
|
|
|
import android.util.Log;
|
|
|
|
import android.util.Log;
|
|
|
|
import android.view.Menu;
|
|
|
|
import android.view.Menu;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.widget.Toast;
|
|
|
|
import android.widget.AdapterView;
|
|
|
|
|
|
|
|
import android.widget.SimpleAdapter;
|
|
|
|
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.xypower.mpremote.adapter.ItemAdapter;
|
|
|
|
|
|
|
|
import com.xypower.mpremote.bean.WifiInfoBean;
|
|
|
|
import com.xypower.mpremote.databinding.ActivityMainBinding;
|
|
|
|
import com.xypower.mpremote.databinding.ActivityMainBinding;
|
|
|
|
|
|
|
|
import com.xypower.mpremote.interfaces.OnItemClickListener;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
|
public class MainActivity extends AppCompatActivity implements OnItemClickListener, View.OnClickListener {
|
|
|
|
|
|
|
|
|
|
|
|
// Used to load the 'mpremote' library on application startup.
|
|
|
|
// Used to load the 'mpremote' library on application startup.
|
|
|
|
|
|
|
|
|
|
|
@ -68,92 +67,75 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
private static final String WIFI_IP_PREFIX = "192.168.";
|
|
|
|
private static final String WIFI_IP_PREFIX = "192.168.";
|
|
|
|
|
|
|
|
|
|
|
|
private ActivityMainBinding binding;
|
|
|
|
private ActivityMainBinding binding;
|
|
|
|
private Handler mHandler;
|
|
|
|
private Handler mHandler= new Handler();
|
|
|
|
|
|
|
|
private List<ScanResult> mScanResults = new ArrayList<>();//扫描到的wifi集合
|
|
|
|
private List<ScanResult> mScanResults = new ArrayList<>();
|
|
|
|
|
|
|
|
private ScanResult mCurrentScanResult;
|
|
|
|
private ScanResult mCurrentScanResult;
|
|
|
|
private String mPassword = DEFAULT_PRE_SHARED_KEY;
|
|
|
|
private String mPassword = DEFAULT_PRE_SHARED_KEY;
|
|
|
|
private boolean mUsingGatewayIp = true;
|
|
|
|
private boolean mUsingGatewayIp = true;
|
|
|
|
private String mAssignedIp = "";
|
|
|
|
private String mAssignedIp = "";
|
|
|
|
private WifiAdaper mAdapter;
|
|
|
|
private List<WifiInfoBean> mItems = new ArrayList<>();
|
|
|
|
private List<Map<String, Object>> mItems = new ArrayList<Map<String, Object>>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private ConnectivityManager mConnectivityManager;
|
|
|
|
private ConnectivityManager mConnectivityManager;
|
|
|
|
private NetworkConnectChangedReceiver mNetworkConnectChangedReceiver;
|
|
|
|
private NetworkConnectChangedReceiver mNetworkConnectChangedReceiver;
|
|
|
|
private ConnectivityManager.NetworkCallback mNetworkCallback;
|
|
|
|
private ConnectivityManager.NetworkCallback mNetworkCallback;
|
|
|
|
private ActivityResultLauncher<Intent> settingLauncher;
|
|
|
|
private ActivityResultLauncher<Intent> settingLauncher;
|
|
|
|
|
|
|
|
private ItemAdapter adapter;
|
|
|
|
public class WifiAdaper extends SimpleAdapter{
|
|
|
|
private WifiManager wifiManager;
|
|
|
|
public WifiAdaper(Context context, List<Map<String, Object>> items, int resource, String[] from, int[] to) {
|
|
|
|
private ActivityResultLauncher<Intent> wifiLauncher;
|
|
|
|
super(context, items, resource, from, to);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public View getView(int position, View convertView, ViewGroup parent){
|
|
|
|
|
|
|
|
convertView = super.getView(position, convertView, parent);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TextView textView = (TextView)convertView.findViewById(R.id.id_text);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ScanResult scanResult = mScanResults.get(position);
|
|
|
|
|
|
|
|
// if (scanResult.)
|
|
|
|
|
|
|
|
String text = (String)mItems.get(position).get("text");
|
|
|
|
|
|
|
|
if (text.startsWith("XY") || text.startsWith("xy")) {
|
|
|
|
|
|
|
|
textView.setTextColor(Color.RED);
|
|
|
|
|
|
|
|
textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
textView.setTextColor(Color.BLACK);
|
|
|
|
|
|
|
|
textView.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return convertView;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
binding = ActivityMainBinding.inflate(getLayoutInflater());
|
|
|
|
binding = ActivityMainBinding.inflate(getLayoutInflater());
|
|
|
|
setContentView(binding.getRoot());
|
|
|
|
setContentView(binding.getRoot());
|
|
|
|
|
|
|
|
mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
|
|
|
|
|
|
wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);//获取wifi管理器
|
|
|
|
|
|
|
|
initActivityResult();//初始化页面回调
|
|
|
|
|
|
|
|
initView();//初始化页面显示
|
|
|
|
|
|
|
|
initEvent();//初始化事件
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void initEvent() {
|
|
|
|
|
|
|
|
AdbManager.initManager(this);//初始化Adb
|
|
|
|
loadSettings();//获取wifi配置
|
|
|
|
loadSettings();//获取wifi配置
|
|
|
|
mHandler = new Handler();
|
|
|
|
if (applyForPermissions()) {
|
|
|
|
|
|
|
|
scanWifi();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
initActivityResult();
|
|
|
|
private void initView() {
|
|
|
|
AdbManager.initManager(this);
|
|
|
|
adapter = new ItemAdapter();
|
|
|
|
|
|
|
|
adapter.setOnClickListener(this);
|
|
|
|
|
|
|
|
binding.listView.setAdapter(adapter);
|
|
|
|
|
|
|
|
binding.listView.setLayoutManager(new LinearLayoutManager(this));
|
|
|
|
|
|
|
|
|
|
|
|
mConnectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
|
|
binding.refresh.setOnClickListener(this);
|
|
|
|
|
|
|
|
binding.setting.setOnClickListener(this);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
binding.listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
|
private void initActivityResult() {
|
|
|
|
|
|
|
|
settingLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
|
|
|
|
public void onActivityResult(ActivityResult result) {
|
|
|
|
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
|
|
|
|
loadSettings();
|
|
|
|
|
|
|
|
|
|
|
|
if (!wifiManager.isWifiEnabled()) {
|
|
|
|
|
|
|
|
wifiManager.setWifiEnabled(true);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
mCurrentScanResult = mScanResults.get(position);
|
|
|
|
wifiLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onActivityResult(ActivityResult result) {
|
|
|
|
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
|
|
|
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
|
|
|
String s1 = normalizeSSID(mCurrentScanResult.SSID);
|
|
|
|
|
|
|
|
String s2 = normalizeSSID(wifiInfo.getSSID());
|
|
|
|
String s2 = normalizeSSID(wifiInfo.getSSID());
|
|
|
|
if (TextUtils.equals(s1, s2)) {
|
|
|
|
if (wifiInfo != null) {
|
|
|
|
openDeviceActivity();
|
|
|
|
String ssid = wifiInfo.getSSID();
|
|
|
|
} else {
|
|
|
|
if (!TextUtils.isEmpty(ssid)) {
|
|
|
|
startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
|
|
|
|
if (ssid.startsWith("\"") && ssid.endsWith("\"")) {
|
|
|
|
|
|
|
|
ssid = ssid.substring(1, ssid.length() - 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// connectWifi(mCurrentScanResult.SSID, mCurrentScanResult.BSSID, mPassword);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
if (ssid.startsWith("XY") || ssid.startsWith("xy")) {
|
|
|
|
|
|
|
|
openDeviceActivity();
|
|
|
|
if (applyForPermissions()) {
|
|
|
|
|
|
|
|
scanWifi();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void initActivityResult() {
|
|
|
|
|
|
|
|
settingLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onActivityResult(ActivityResult result) {
|
|
|
|
|
|
|
|
loadSettings();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -161,7 +143,6 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected void onDestroy() {
|
|
|
|
protected void onDestroy() {
|
|
|
|
super.onDestroy();
|
|
|
|
super.onDestroy();
|
|
|
|
|
|
|
|
|
|
|
|
if (mConnectivityManager != null && mNetworkCallback != null) {
|
|
|
|
if (mConnectivityManager != null && mNetworkCallback != null) {
|
|
|
|
mConnectivityManager.bindProcessToNetwork(null);
|
|
|
|
mConnectivityManager.bindProcessToNetwork(null);
|
|
|
|
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
|
|
|
|
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
|
|
|
@ -183,10 +164,8 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
case R.id.action_refresh:
|
|
|
|
case R.id.action_refresh:
|
|
|
|
scanWifi();
|
|
|
|
scanWifi();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case R.id.action_settings: {
|
|
|
|
case R.id.action_settings:
|
|
|
|
Intent intent = new Intent(getApplicationContext(), SettingsActivity.class);
|
|
|
|
openSettingActivity();
|
|
|
|
settingLauncher.launch(intent);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -194,6 +173,7 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
|
|
|
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
|
|
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
|
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
|
|
@ -218,8 +198,7 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
if (banList.size() > 0) {
|
|
|
|
if (banList.size() > 0) {
|
|
|
|
//告知该权限作用,要求手动授予权限
|
|
|
|
//告知该权限作用,要求手动授予权限
|
|
|
|
showFinishedDialog();
|
|
|
|
showFinishedDialog();
|
|
|
|
}
|
|
|
|
} else if (requestList.size() > 0) {
|
|
|
|
else if (requestList.size() > 0) {
|
|
|
|
|
|
|
|
//告知权限的作用,并重新申请
|
|
|
|
//告知权限的作用,并重新申请
|
|
|
|
showTipDialog(requestList);
|
|
|
|
showTipDialog(requestList);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -262,54 +241,33 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
.create();
|
|
|
|
.create();
|
|
|
|
dialog.show();
|
|
|
|
dialog.show();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void scanWifi() {
|
|
|
|
protected void scanWifi() {
|
|
|
|
|
|
|
|
|
|
|
|
mScanResults.clear();
|
|
|
|
mScanResults.clear();
|
|
|
|
|
|
|
|
new Thread(new Runnable() {
|
|
|
|
(new Thread(new Runnable() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
public void run() {
|
|
|
|
|
|
|
|
|
|
|
|
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
|
|
|
|
|
|
|
|
wifiManager.startScan();
|
|
|
|
wifiManager.startScan();
|
|
|
|
|
|
|
|
|
|
|
|
List<ScanResult> scanResults = wifiManager.getScanResults();
|
|
|
|
List<ScanResult> scanResults = wifiManager.getScanResults();
|
|
|
|
Map<String, String> ssids = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (ScanResult scanResult : scanResults) {
|
|
|
|
for (ScanResult scanResult : scanResults) {
|
|
|
|
if (TextUtils.isEmpty(scanResult.SSID)) {
|
|
|
|
if (TextUtils.isEmpty(scanResult.SSID)) {
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (ssids.containsKey(scanResult.SSID)) {
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ssids.put(scanResult.SSID, scanResult.SSID);
|
|
|
|
|
|
|
|
mScanResults.add(scanResult);
|
|
|
|
mScanResults.add(scanResult);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// mAdapter = new ArrayAdapter<>()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mHandler.post(new Runnable() {
|
|
|
|
mHandler.post(new Runnable() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
public void run() {
|
|
|
|
refreshListView();
|
|
|
|
refreshListView();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})).start();
|
|
|
|
}).start();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void connectWifi(String ssid, String bssid, String pwd) {
|
|
|
|
private void connectWifi(String ssid, String bssid, String pwd) {
|
|
|
|
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Android 10
|
|
|
|
// Android 10
|
|
|
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
|
|
|
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
|
|
|
|
WifiNetworkSuggestion suggestion =
|
|
|
|
WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
|
|
|
|
new WifiNetworkSuggestion.Builder()
|
|
|
|
|
|
|
|
.setSsid(ssid)
|
|
|
|
.setSsid(ssid)
|
|
|
|
.setWpa2Passphrase((pwd))
|
|
|
|
.setWpa2Passphrase((pwd))
|
|
|
|
.setIsAppInteractionRequired(true)
|
|
|
|
.setIsAppInteractionRequired(true)
|
|
|
@ -360,7 +318,6 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onUnavailable() {
|
|
|
|
public void onUnavailable() {
|
|
|
|
super.onUnavailable();
|
|
|
|
super.onUnavailable();
|
|
|
|
|
|
|
|
|
|
|
|
runOnUiThread(new Runnable() {
|
|
|
|
runOnUiThread(new Runnable() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
public void run() {
|
|
|
@ -402,19 +359,8 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void refreshListView() {
|
|
|
|
private void refreshListView() {
|
|
|
|
mAdapter = new WifiAdaper(this, getData(), R.layout.list_item, new String[] { "img", "text" },
|
|
|
|
|
|
|
|
new int[] { R.id.id_img, R.id.id_text });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
binding.listView.setAdapter(mAdapter);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<Map<String, Object>> getData() {
|
|
|
|
|
|
|
|
mItems.clear();
|
|
|
|
mItems.clear();
|
|
|
|
|
|
|
|
|
|
|
|
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
|
|
|
|
|
|
|
|
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
|
|
|
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
|
|
|
|
|
|
|
|
|
|
|
String ssid = "";
|
|
|
|
String ssid = "";
|
|
|
|
if (wifiInfo != null) {
|
|
|
|
if (wifiInfo != null) {
|
|
|
|
ssid = wifiInfo.getSSID();
|
|
|
|
ssid = wifiInfo.getSSID();
|
|
|
@ -424,38 +370,43 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (ScanResult scanResult : mScanResults) {
|
|
|
|
for (ScanResult scanResult : mScanResults) {
|
|
|
|
Map map = new HashMap<String, Object>();
|
|
|
|
WifiInfoBean bean = new WifiInfoBean();
|
|
|
|
|
|
|
|
|
|
|
|
int signalLevel = WifiManager.calculateSignalLevel(scanResult.level, RSSI_LEVELS);
|
|
|
|
int signalLevel = WifiManager.calculateSignalLevel(scanResult.level, RSSI_LEVELS);
|
|
|
|
int drawableId = R.drawable.ic_wifi_signal_0;
|
|
|
|
|
|
|
|
boolean connected = TextUtils.equals(ssid, scanResult.SSID);
|
|
|
|
boolean connected = TextUtils.equals(ssid, scanResult.SSID);
|
|
|
|
switch (signalLevel) {
|
|
|
|
bean.setConnected(connected);
|
|
|
|
case 1:
|
|
|
|
bean.setSignalLevel(signalLevel);
|
|
|
|
drawableId = connected ? R.drawable.ic_wifi_signal_1_green : R.drawable.ic_wifi_signal_1;
|
|
|
|
bean.setText(scanResult.SSID);
|
|
|
|
break;
|
|
|
|
mItems.add(bean);
|
|
|
|
case 2:
|
|
|
|
}
|
|
|
|
drawableId = connected ? R.drawable.ic_wifi_signal_2_green : R.drawable.ic_wifi_signal_2;
|
|
|
|
adapter.setItemList(mItems);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
drawableId = connected ? R.drawable.ic_wifi_signal_3_green : R.drawable.ic_wifi_signal_3;
|
|
|
|
//每个item的点击事件
|
|
|
|
break;
|
|
|
|
@Override
|
|
|
|
case 4:
|
|
|
|
public void onItemClick(View v, int position) {
|
|
|
|
drawableId = connected ? R.drawable.ic_wifi_signal_4_green : R.drawable.ic_wifi_signal_4;
|
|
|
|
if (!wifiManager.isWifiEnabled()) {
|
|
|
|
|
|
|
|
wifiManager.setWifiEnabled(true);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
openWifiActivity();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//页面按钮的点击事件
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
switch (v.getId()) {
|
|
|
|
|
|
|
|
case R.id.refresh:
|
|
|
|
|
|
|
|
scanWifi();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
case R.id.setting:
|
|
|
|
drawableId = connected ? R.drawable.ic_wifi_signal_0_green : R.drawable.ic_wifi_signal_0;
|
|
|
|
openSettingActivity();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
map.put("img", drawableId);
|
|
|
|
|
|
|
|
// if (scanR)
|
|
|
|
|
|
|
|
map.put("text", scanResult.SSID);
|
|
|
|
|
|
|
|
mItems.add(map);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mItems;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NetworkConnectChangedReceiver extends BroadcastReceiver {
|
|
|
|
class NetworkConnectChangedReceiver extends BroadcastReceiver {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
@ -551,7 +502,6 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
|
|
|
|
protected void openDeviceActivity() {
|
|
|
|
protected void openDeviceActivity() {
|
|
|
|
String ipAddressByWifi = null;
|
|
|
|
String ipAddressByWifi = null;
|
|
|
|
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
|
|
|
|
|
|
|
|
if (wifiManager != null) {
|
|
|
|
if (wifiManager != null) {
|
|
|
|
ipAddressByWifi = Formatter.formatIpAddress(wifiManager.getDhcpInfo().ipAddress);
|
|
|
|
ipAddressByWifi = Formatter.formatIpAddress(wifiManager.getDhcpInfo().ipAddress);
|
|
|
|
if (!wifiManager.isWifiEnabled()) {
|
|
|
|
if (!wifiManager.isWifiEnabled()) {
|
|
|
@ -577,7 +527,14 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void openWifiActivity() {
|
|
|
|
|
|
|
|
Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
|
|
|
|
|
|
|
|
wifiLauncher.launch(intent);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void openSettingActivity() {
|
|
|
|
|
|
|
|
Intent intent = new Intent(getApplicationContext(), SettingsActivity.class);
|
|
|
|
|
|
|
|
settingLauncher.launch(intent);
|
|
|
|
|
|
|
|
}
|
|
|
|
private String normalizeSSID(String ssid) {
|
|
|
|
private String normalizeSSID(String ssid) {
|
|
|
|
if (TextUtils.isEmpty(ssid)) {
|
|
|
|
if (TextUtils.isEmpty(ssid)) {
|
|
|
|
return ssid;
|
|
|
|
return ssid;
|
|
|
|