当前位置: 首页 > news >正文

福安做网站东莞seo靠谱

福安做网站,东莞seo靠谱,购物网站下载,做淘宝站外推广网站这里写自定义目录标题 有Wi-Fi名称和密码自动连接Wi-Fi主Activity服务类 WIFIStateReceiver工具类 WIFIConnectionManager 有Wi-Fi名称和密码自动连接Wi-Fi 主Activity public class MainActivity extends AppCompatActivity implements View.OnClickListener{private static…

这里写自定义目录标题

  • 有Wi-Fi名称和密码自动连接Wi-Fi
      • 主Activity
      • 服务类 WIFIStateReceiver
      • 工具类 WIFIConnectionManager

有Wi-Fi名称和密码自动连接Wi-Fi

主Activity

public class MainActivity extends AppCompatActivity implements View.OnClickListener{private static final String TAG = MainActivity.class.getName();private EditText mEtAccount;private EditText mEtPwd;private WIFIStateReceiver mWIFIStateReceiver;private Button mBtnAuto;private Button mBtnDisconnect;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();initEvent();}private void initEvent() {mBtnAuto.setOnClickListener(this);mBtnDisconnect.setOnClickListener(this);}private void initData() {}private void initView() {mEtAccount = findViewById(R.id.et_account);mEtPwd = findViewById(R.id.et_pwd);mBtnAuto = findViewById(R.id.btn_auto);mBtnDisconnect = findViewById(R.id.btn_disconnect);}@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(mWIFIStateReceiver);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_auto: {if (mWIFIStateReceiver == null) {mWIFIStateReceiver = new WIFIStateReceiver(MainActivity.this);registerReceiver(mWIFIStateReceiver, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION));WIFIAutoConnectionService.start(this,mEtAccount.getText().toString().trim(),mEtPwd.getText().toString().trim());}}break;case R.id.btn_disconnect: {WIFIConnectionManager.getInstance(this).disconnect();WIFIConnectionManager.getInstance(this).closeWifi();}break;}}
}

服务类 WIFIStateReceiver

public class WIFIStateReceiver extends BroadcastReceiver {private static final String TAG = WIFIStateReceiver.class.getName();private Context mContext;List<ScanResult> scanResults;public WIFIStateReceiver(Context context) {this.mContext = context;}@Overridepublic void onReceive(Context context, Intent intent) {if (!intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {return;}scanResults =  WIFIConnectionManager.getInstance(mContext).getWifiManager().getScanResults();for (int i = 0 ; i < scanResults.size();i++) {Log.e(TAG,"scanResults:----"+(scanResults.get(i)).SSID);}if (!WIFIConnectionManager.getInstance(mContext).isConnected("Wi-Fi名称")) {WIFIConnectionManager.getInstance(mContext).connect("Wi-Fi名称", "Wi-Fi密码");}}}

工具类 WIFIConnectionManager

public class WIFIConnectionManager {private static final String TAG = WIFIConnectionManager.class.getName();private static WIFIConnectionManager sInstance = null;private android.net.wifi.WifiManager mWifiManager;private int networkId;public WIFIConnectionManager(Context context) {mWifiManager = (android.net.wifi.WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);}public static WIFIConnectionManager getInstance(Context context) {if (sInstance == null) {synchronized (WIFIConnectionManager.class) {if (sInstance == null) {sInstance = new WIFIConnectionManager(context);}}}return sInstance;}/*** 尝试连接指定wifi** @param ssid     wifi名* @param password 密码* @return 是否连接成功*/public boolean connect(@NonNull String ssid, @NonNull String password) {Log.d(TAG, "connect() called with: ssid = [" + ssid + "], password = [" + password + "]");Log.d(TAG, "connect: wifi opened = " + openWifi());boolean isConnected = isConnected(ssid);//当前已连接至指定wifiLog.d(TAG, "connect: is already connected = " + isConnected);if (isConnected) {return true;}networkId = mWifiManager.addNetwork(newWifiConfig(ssid, password, true));boolean result = mWifiManager.enableNetwork(networkId, true);Log.d(TAG, "connect: network enabled = " + result);return result;}/*** 根据wifi名与密码配置 WiFiConfiguration, 每次尝试都会先断开已有连接** @param isClient 当前设备是作为客户端,还是作为服务端, 影响SSID和PWD*/@NonNullprivate WifiConfiguration newWifiConfig(String ssid, String password, boolean isClient) {WifiConfiguration config = new WifiConfiguration();config.allowedAuthAlgorithms.clear();config.allowedGroupCiphers.clear();config.allowedKeyManagement.clear();config.allowedPairwiseCiphers.clear();config.allowedProtocols.clear();if (isClient) {//作为客户端, 连接服务端wifi热点时要加双引号config.SSID = "\"" + ssid + "\"";config.preSharedKey = "\"" + password + "\"";} else {//作为服务端, 开放wifi热点时不需要加双引号config.SSID = ssid;config.preSharedKey = password;}config.hiddenSSID = true;config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);config.status = WifiConfiguration.Status.ENABLED;return config;}/*** @return 热点是否已开启*/public boolean isWifiEnabled() {try {Method methodIsWifiApEnabled = WifiManager.class.getDeclaredMethod("isWifiApEnabled");return (boolean) methodIsWifiApEnabled.invoke(mWifiManager);} catch (Exception e) {Log.e(TAG, "isWifiEnabled: ", e);return false;}}/*** 是否已连接指定wifi*/public boolean isConnected(String ssid) {WifiInfo wifiInfo = mWifiManager.getConnectionInfo();if (wifiInfo == null) {return false;}switch (wifiInfo.getSupplicantState()) {case AUTHENTICATING:case ASSOCIATING:case ASSOCIATED:case FOUR_WAY_HANDSHAKE:case GROUP_HANDSHAKE:case COMPLETED:return wifiInfo.getSSID().replace("\"", "").equals(ssid);default:return false;}}/*** 打开WiFi* @return*/public boolean openWifi() {boolean opened = true;if (!mWifiManager.isWifiEnabled()) {opened = mWifiManager.setWifiEnabled(true);}return opened;}/*** 关闭wifi* @return*/public boolean closeWifi() {boolean closed = true;if (mWifiManager.isWifiEnabled()) {closed = mWifiManager.setWifiEnabled(false);}return closed;}/*** 断开连接* @return*/public WIFIConnectionManager disconnect() {if (networkId != 0) {mWifiManager.disableNetwork(networkId);}mWifiManager.disconnect();return this;}/*** 是否连接过指定Wifi*/@Nullablepublic WifiConfiguration everConnected(String ssid) {List<WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks();if (existingConfigs == null || existingConfigs.isEmpty()) {return null;}ssid = "\"" + ssid + "\"";for (WifiConfiguration existingConfig : existingConfigs) {if (existingConfig.SSID.equals(ssid)) {return existingConfig;}}return null;}/*** 获取本机的ip地址*/@Nullablepublic String getLocalIp() {return convertIp(mWifiManager.getConnectionInfo().getIpAddress());}private String convertIp(int ipAddress) {if (ipAddress == 0) return null;return ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "."+ (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff));}public WifiManager getWifiManager() {return mWifiManager;}
}

WIFIAutoConnectionService

public class WIFIAutoConnectionService extends Service {public static final String SSID = "HUAWEI";public static final String PWD = "nihao321";private static final String TAG = WIFIAutoConnectionService.class.getSimpleName();private static final String KEY_SSID = "WI-FI名称";private static final String KEY_PWD = "WI-FI密码";/*** wifi名*/private String mSsid = "";/*** 密码*/private String mPwd = "";/*** 负责不断尝试连接指定wifi*/private Handler mHandler = new Handler(Looper.getMainLooper(), new Handler.Callback() {@Overridepublic boolean handleMessage(Message msg) {WIFIConnectionManager.getInstance(WIFIAutoConnectionService.this).connect(mSsid, mPwd);boolean connected =  WIFIConnectionManager.getInstance(WIFIAutoConnectionService.this).isConnected(mSsid);Log.d(TAG, "handleMessage: wifi connected = " + connected);if (!connected) {Log.d(TAG, "handleMessage: re-try in 5 seconds");mHandler.sendEmptyMessageDelayed(0, 5000);//5s循环}return true;}});/*** 连接指定wifi热点, 失败后5s循环** @param context 用于启动服务的上下文* @param ssid    默认HUD-WIFI* @param pwd     (WPA加密)默认12345678*/public static void start(Context context, String ssid, String pwd) {Intent starter = new Intent(context,WIFIAutoConnectionService.class);starter.putExtra(KEY_SSID, ssid).putExtra(KEY_PWD, pwd);context.startService(starter);Log.d(TAG, "start: ");}@Overridepublic void onCreate() {super.onCreate();}/*** @return always null*/@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {mSsid = intent.getStringExtra(KEY_SSID);mPwd = intent.getStringExtra(KEY_PWD);mHandler.sendEmptyMessage(0);return START_NOT_STICKY;}@Overridepublic void onDestroy() {super.onDestroy();Log.d(TAG, "onDestroy: ");}}

这里只需要把Wi-Fi名称和密码换成自己所需要的就可以实现功能了。

http://www.hrbkazy.com/news/48925.html

相关文章:

  • 源码网站建设教程百度正版下载
  • 阿里云买了域名怎么建网站如何进行百度推广
  • 如何加入电商平台seo诊断网站
  • 重庆哪里有做淘宝网站推广的seo搜索优化
  • 从零学建设网站杭州网络整合营销公司
  • 绿色健康网站模板百度推广开户代理商
  • wordpress动态图手机优化游戏性能的软件
  • 如何替换网站ico图标想做一个网站
  • h5制作的网站新闻软文发布平台
  • 广西网站建设价格低广州seo外包多少钱
  • xp系统做网站服务器东莞seo外包公司哪家好
  • 十四五专业建设规划排名优化推广
  • 美女网站做国外广告怎么样网站seo优化价格
  • 招商网站平网站平台百度上怎么发布作品
  • 备案 修改网站名称全网推广推荐
  • 哪个网站可以做初一政治试卷贴吧高级搜索
  • wordpress自建站百度直播
  • 织梦网站加滚动公告广告联盟
  • 做网站用java好还是c2022网站快速收录技术
  • 西安网站设计师没经验可以做电商运营吗
  • 豫icp郑州网站建设网络运营和网络营销的区别
  • 百度云架设网站网站统计工具有哪些
  • 阜阳集团网站建设营销手段有哪些方式
  • 成华区响应式网站建设网站推广优化外包公司
  • 法院内部网站建设方案北京网站seo费用
  • 一诺互联 网站建设个人在线做网站免费
  • wordpress开启redisseo怎么做关键词排名
  • 做家具网站要多少钱英文谷歌优化
  • 用ps如何做短视频网站深圳建站公司
  • 哪些网站可以做网店天津网站建设优化