Settings.System
包括幾個標誌,您可以使用此:
WIFI_USE_STATIC_IP
WIFI_STATIC_IP
WIFI_STATIC_NETMASK
WIFI_STATIC_GATEWAY
WIFI_STATIC_DNS1
和WIFI_STATIC_DNS2
您還需要爲應用程序聲明的android.permission.WRITE_SETTINGS
權限。
然後在您的活動:
final ContentResolver cr = getContentResolver();
Settings.System.putInt(cr, Settings.System.WIFI_USE_STATIC_IP, 1);
Settings.System.putString(cr, Settings.System.WIFI_STATIC_IP, "you.re.ip.addr");
// call putString() for each value to set for your interface
如果你想改變運營商的3G/4G等接口的IP地址,我不相信這是可能的 - 因爲它連接到運營商和使用他們的DHCP /安全性來使您能夠連接和使用他們的服務(有點像改變電纜調制解調器的外部IP而未經ISP的同意)。
很好的答案,謝謝。我認爲沒有IPv6通過這個訪問,並且沒有辦法添加作爲別名而不是替換? – Flexo 2011-08-29 16:12:33
我還沒有看到任何設置IPv6地址的API,唯一的例子是使用IPv4。但是,Android確實支持IPv6(API 1以後的'Inet6Address')。可以隨時嘗試使用WIFI_STATIC_IP設置IPv6地址並查看會發生什麼:)不確定是否設置別名,對不起。 – CrackerJack9 2011-08-29 17:03:11
這正是我想要的,然而Android說「Settings.System.WIFI_STATIC_IP」已棄用(API17),我應該使用WifiManager,任何新的代碼或鏈接如何? – Shadoath 2014-04-24 23:04:05