相关疑难解决方法(0)

如何在Android 3.x或4.x上以编程方式配置静态IP地址,网络掩码,网关

我已经检查了Stack Overflow问题API,以便在Android应用程序中配置静态IP地址.

它适用于Android 2.3.但是,在更高的API级别上没有运气.例如,我把设置

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_IP, "192.168.0.100");
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_DNS1, "192.168.0.254");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.254");
Run Code Online (Sandbox Code Playgroud)

但我回去查看:

Setting --> Wi-Fi --> Long Press Access Point SSID --> Modify Network --> check Show advanced options
Run Code Online (Sandbox Code Playgroud)

IP Settings领域仍然陈述DHCP但不是Static.

确实,我可以android.provider.Settings.System.getString()用来取回我设定的东西.它证明设置保存在某处,但系统只是忽略它.

系统使用android.provider.Settings.SystemAndroid 3.x和4.x以外的设置,因为设置是根据接入点SSID设置的.我可以修改一个SSID上的设置,就像它在Android 2.3上的工作方式一样吗?

settings networking android ipv4

31
推荐指数
1
解决办法
5万
查看次数

如何在Android 6(M)上以编程方式更改WiFi配置?

这个链接中有一种方法可以在Android 5(L)中完成.有这样的方法:

public static void setDNS(InetAddress dns1, InetAddress dns2, WifiConfiguration wifiConf)
    throws SecurityException, IllegalArgumentException, NoSuchMethodException, InvocationTargetException,
    NoSuchFieldException, IllegalAccessException {

    Object linkProperties = null;
    ArrayList<InetAddress> mDnses;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        staticIpConf = wifiConf.getClass().getMethod("getStaticIpConfiguration").invoke(wifiConf);
        mDnses = (ArrayList<InetAddress>) getDeclaredField(staticIpConf, "dnsServers");
    }
    else {
        linkProperties = getField(wifiConf, "linkProperties");
        mDnses = (ArrayList<InetAddress>) getDeclaredField(linkProperties, "mDnses");
    }

    mDnses.clear();
    mDnses.add(dns1);
    mDnses.add(dns2);
}
Run Code Online (Sandbox Code Playgroud)

但在android M中,wifi静态ip配置中没有字段"dnsServers".这是否意味着无法在6.0中更改wifi设置?

java android android-6.0-marshmallow

8
推荐指数
0
解决办法
770
查看次数

如何在Android 5.x(Lollipop)上以编程方式配置静态IP地址,网络掩码,网关,DNS以进行Wi-Fi连接

如何在Android 5.x上以编程方式配置静态IP地址,网络掩码,网关,DNS以进行Wi-Fi连接?是否有一个开放的API(没有找到它)或隐藏可用于此?如果可能的话,请你举个例子吗?

我知道它可以在Android 4.0+上运行,但它在Android 5.0上不起作用

java android android-5.0-lollipop

6
推荐指数
1
解决办法
1万
查看次数