2012-06-26 25 views
5

Google play thực hiện điều này khi bạn cố gắng sử dụng và không xảy ra kết nối với mạng wifi.Làm cách nào để che phủ nút 'quay lại' và 'tiếp theo' trên cửa sổ "chọn mạng wifi"?

ảnh về những gì tôi đang cố gắng để làm:

image

Nếu bạn chỉ cần chạy một tiêu chuẩn

startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); 

Sau đó nó tải lên cửa sổ tôi đang tìm kiếm. Tuy nhiên, tôi muốn một nút 'back' và 'next' được phủ lên trên nó. Quay lại sẽ trở về cửa sổ trước đó và tiếp theo chỉ nên chọn nếu mạng đã được chọn và xác thực được thực hiện (nếu được yêu cầu). Sau đó nó sẽ đi đến một hoạt động khác.

Tôi đã thử triển khai nó với các đoạn (một cho cửa sổ khởi động ý định và một cho nút), nhưng nó không hoạt động.

Đây là mã mà đưa ra khi ứng dụng đã

public class TestActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layfile); 
//  Intent n = new Intent(this,Pactivity.class); 
//  startActivity(n); 
//   
    } 
} 

public class Pactivity extends PreferenceActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 
    //addPreferencesFromIntent(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); 
    setContentView(R.layout.main); 

} 

} 

public class Pfrag extends PreferenceFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Load the preferences from an XML resource 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

Dưới đây là các tập tin xml

<?xml version="1.0" encoding="UTF-8"?> 

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >  
    <Preference 
     android:key="key" 
     android:title="WiFi" 
     android:summary="Calls WiFi">   
      <intent android:action="android.net.wifi.PICK_WIFI_NETWORK"/>   
    </Preference> 
</PreferenceScreen> 

Tôi cũng đã thử một số ném nhau Preferences lớp dựa. Cũng không làm những gì tôi muốn.

Làm cách nào tôi có thể nhận các nút được phủ lên những gì bạn thấy với một số WifiManager.ACTION_PICK_WIFI_NETWORK?

+1

Đây là câu hỏi lập trình, phù hợp hơn với StackOverflow. StackExchange này là nhiều hơn về Android và tối đa hóa việc sử dụng điện thoại thông minh/máy tính bảng Android của người dùng. – t0mm13b

Trả lời

15
Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);  
    intent.putExtra("only_access_points", true); 
    intent.putExtra("extra_prefs_show_button_bar", true); 
    intent.putExtra("wifi_enable_next_on_connect", true); 
    startActivityForResult(intent, 1); 

Điều này sẽ thực hiện. Được thiết kế lại từ mã google.

+1

Làm thế nào để bạn có được mạng được chọn? màn hình mở ra với mục đích này không cung cấp tùy chọn chọn. nó chỉ cho phép bạn quản lý các kết nối của bạn. – Anonymous

+1

Tùy thuộc vào những gì người dùng đã chọn (quay lại hoặc tiếp theo), bạn sẽ nhận được mã kết quả của mình. Nhận ra rằng người dùng không thể chọn tiếp theo cho đến khi một wifi được chọn.Một khi bạn nhận được tiếp theo, bạn có thể liệt kê các wificonnections và kiểm tra được kết nối wifiManager.getConfiguredNetworks(); - trạng thái – UncleKing

+0

@uncleking có cách nào để xóa nút quay lại không? – Alexis

2

Đây chỉ là cải thiện câu trả lời của UncleKing.

Vì bạn yêu cầu cụ thể cho

Làm thế nào tôi có thể nhận được các nút overlayed trên những gì bạn nhìn thấy với một WifiManager.ACTION_PICK_WIFI_NETWORK?

Không cần phụ thêm only_access_pointswifi_enable_next_on_connect. Bạn chỉ cần thêm extra_prefs_show_button_bar. Các nút lớp phủ sẽ xuất hiện chỉ bằng cách sử dụng phần bổ sung cuối cùng này.

Bạn có thể thử này sử dụng ADB nếu bạn muốn:

am start -a android.net.wifi.PICK_WIFI_NETWORK --ez extra_prefs_show_button_bar True 

Vì vậy, các mã giảm sẽ là:

Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);  
intent.putExtra("extra_prefs_show_button_bar", true); 
startActivityForResult(intent, 1); 

Thử nó trên Android 4.1, 4.4 và 5.1.

Các vấn đề liên quan