2010-11-05 10 views

Trả lời

24

Bạn có thể thay đổi cài đặt hệ thống chương trình khác.

Trước tiên, bạn cần phải yêu cầu sự cho phép 'WRITE_SETTINGS' trong 'AndroidManifest.xml' của bạn:

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

Sau đó, bạn cần phải thực sự thay đổi các thiết lập bằng cách sử dụng đoạn mã sau:

android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "0"); 
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.2"); 
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS2, "192.168.0.3"); 
    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, "1"); 

Các cài đặt hiện tại có thể được truy cập thông qua cùng một phương pháp nhưng sử dụng 'getString' thay vì 'putString'.

Để biết thông tin về các tùy chọn cài đặt tham quan tham khảo ở đây: Settings.System | Android Developers

+0

cảm ơn ... điều này đã giải quyết vấn đề cài đặt proxy của tôi ... – user4232

+3

@Flexiweb, Bro. Nó không hoạt động cho Android OS Ver 3 trở lên. Bạn có thể vui lòng giúp đỡ cho điều đó quá. – Harpreet

+0

Điều này có thể làm việc cho 'putString' nhưng tôi đang thử trên 5.1.1 đến 'getString' và nó trả về null cho mỗi một trong số này. –

2

Bạn không thể thực hiện việc này từ một ứng dụng.

Bạn có muốn các ứng dụng trên điện thoại của mình thay đổi cài đặt của điện thoại theo ý muốn không?

+1

yes i muốn ứng dụng của tôi để thay đổi cài đặt wifi ip .. nó không thể ? – faheem

+0

Tôi nghĩ rằng điểm Peter đang cố gắng tạo ra là bạn không nên muốn các ứng dụng tùy ý thay đổi các thiết lập này. –

+0

ok, tôi muốn tạo một ứng dụng thay đổi các thiết lập n/w (ip, dns, gateway) .. tạo các cấu hình khác nhau của cấu hình wifi. và trên một lần chạm nó thay đổi cấu hình..60% ứng dụng của tôi đã hoàn thành, chỉ muốn một phương pháp hoặc bất kỳ điều gì để thay đổi các cài đặt này – faheem

1

Không chắc chắn nó sẽ giúp nhưng có thể tự thiết lập một thay thế ip, gateway, dns vv cho một điểm truy cập cụ thể trong cài đặt không dây. Cho dù bạn có thể làm điều này tự động hoặc sử dụng ý định là một câu hỏi khác?

tôi chỉ thấy điều này mà có thể hữu ích

How can i call Wi-Fi settings screen from my application using Android

+0

Cảm ơn bạn, bằng cách sử dụng mục đích, bạn có thể thay đổi cài đặt wifi không? – faheem

1

mã tiếp theo cũng có thể làm điều đó:

WifiManager mWifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE); 
    DhcpInfo dhcpInfo = mWifiManager.getDhcpInfo(); 
    int dns1 = dhcpInfo.dns1; 
    int dns2 = dhcpInfo.dns2; 
+1

Làm cách nào để đặt giá trị DNS? –