java - 有没有办法在 Android 中打开 Wifi Activity 并获得 Android 中成功连接的结果

标签 java android kotlin android-settings

这是我的场景, 我希望用户单击一个按钮,使用

将他带到 wifi 网络屏幕
startActivityForResult(Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS),RESULT_CODE);

然后,用户选择一个 wifi 网络,连接到它,wifi 设置 Activity 关闭,用户返回到我的应用程序。 我如何实现这一目标?

最佳答案

android.provider.Settings 提供 Intent 操作,您可以使用它来启动各种设置屏幕(例如 ACTION_WIFI_SETTINGS)。

要使用按钮,您必须编写:

yourButton.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
         Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
         startActivity(intent);
      }
});

要获取 wifi 连接回调,您必须在 list 中添加权限:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

并将此代码放入 Activity onCreate 或某个方法中:

ConnectivityManager connectivityManager = (ConnectivityManager) 
   getSystemService(Context.CONNECTIVITY_SERVICE); 

NetworkRequest.Builder builder = new NetworkRequest.Builder();

connectivityManager.registerNetworkCallback(builder.build(),   
   new ConnectivityManager.NetworkCallback() { 
   @Override 
   public void onAvailable(Network network) { 
      //Do your work here or restart your activity
      Intent i = new Intent(this, MyActivity.class);
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
         Intent.FLAG_ACTIVITY_SINGLE_TOP);
      startActivity(i);
   } 
   @Override 
   public void onLost(Network network) {
       //internet lost
   }
}); 

关于java - 有没有办法在 Android 中打开 Wifi Activity 并获得 Android 中成功连接的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60167490/

相关文章:

java - 如何在Android应用程序的按钮中显示数学公式?

java - Spring Boot 未加载特定配置文件

android - MotionEvent GetY() 和 getX() 返回不正确的值

java - Android Java - 在 For 循环中使用处理程序

java - RecyclerView 适配器的 Kotlin 泛型

Javadoc 链接到外部 javadoc

java - 读取和写入文本文件时的错误

android - CSS Media Query Landscape - 键盘问题

android - 找不到androidx.compose :compose-compiler:1. 0.0-beta03

android - LiveData 无法观察到变化