如何在“选择wifi网络”窗口上覆盖“后退”和“下一步”按钮?

时间:2012-06-26 19:50:21

标签: android

Google Play会在您尝试使用它并且碰巧没有连接到wifi网络时执行此操作。

我正在尝试做的照片:

image

如果您只是运行标准

startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));

然后它加载了我正在寻找的窗口。但是,我想在它上面叠加一个“后退”和“下一个”按钮。返回应返回上一个窗口,只有在选择了网络并执行身份验证(如果需要)后才能选择。然后它将进入另一项活动。

我尝试用片段实现它(一个用于意图启动窗口,另一个用于按钮),但它不起作用。

这是应用程序启动时启动的代码

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);
    }
}

以下是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>

我还尝试了一些抛出基于偏好的类。也没做我想做的事。

如何将按钮叠加到您使用WifiManager.ACTION_PICK_WIFI_NETWORK看到的内容?

2 个答案:

答案 0 :(得分:18)

    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);

这应该这样做。 从谷歌代码反向设计。

答案 1 :(得分:3)

这只是对UncleKing答案的改进。

因为你专门要求

  

如何将按钮叠加到WifiManager.ACTION_PICK_WIFI_NETWORK上看到的内容?

不需要额外内容only_access_pointswifi_enable_next_on_connect。您只需要extra_prefs_show_button_bar额外费用。只需使用最后一个额外的按钮即可显示叠加按钮。

如果您愿意,可以使用ADB尝试:

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

因此减少的代码将是:

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

在Android 4.1,4.4和5.1上尝试过。