【问题标题】:How to set DNS1 and DNS2 in Android Programmatically & How to check DNS is set or not?如何以编程方式在 Android 中设置 DNS1 和 DNS2 以及如何检查 DNS 是否设置?
【发布时间】:2020-05-08 08:42:36
【问题描述】:

我尝试了一些 DNS 代码

android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "1");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "8.8.4.4");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS2, "8.8.8.8");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.1");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK, "255.255.255.0");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "192.168.1.51");

但是这段代码不起作用。

如果此代码有效,那么我检查 DNS 是否已设置。

请任何人帮助我解决如何处理 DNS。

谢谢

【问题讨论】:

    标签: android android-studio dns wifi vpn


    【解决方案1】:

    您需要在“AndroidManifest.xml”中请求“WRITE_SETTINGS”权限:

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

    检查用户权限,如果授予您可以更改设置:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (Settings.System.canWrite(this)) {
                android.provider.Settings.System.putString(getContentResolver(), Settings.System.WIFI_STATIC_DNS1, "8.8.8.8");
            }
            else {
                Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_WRITE_SETTINGS);
                intent.setData(Uri.parse("package:" + this.getPackageName()));
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
            }
        }
    

    你可以阅读你设置的内容如下:

    String dns1 = Settings.System.getString(getContentResolver(),  Settings.System.WIFI_STATIC_DNS1);
    

    【讨论】:

    • 我已经添加了这个权限。我询问了如何在设定值后检查值。值是否设置。
    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2017-05-30
    • 2011-01-28
    • 2015-03-07
    相关资源
    最近更新 更多