android .provider.Settings дает намеренные действия, которые можно использовать для запуска различных экранов настроек (например, ACTION_WIFI_SETTINGS).
Для работы с кнопкой необходимо написать:
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
startActivity(intent);
}
});
Для получения обратного вызова с подключением по Wi-Fi вы должны указать разрешения в манифесте:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
и поместить этот код в действие 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
}
});