7

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

我正在尝试做的照片:

图片

如果你只是运行一个标准

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>

我还尝试了一些基于 Preferences 的类。也没有做我想做的事。

我怎样才能让按钮覆盖在您看到的内容上WifiManager.ACTION_PICK_WIFI_NETWORK

4

2 回答 2

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

这应该这样做。从谷歌代码逆向工程。

于 2012-06-28T04:57:41.280 回答
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 上尝试过。

于 2017-01-04T16:04:33.747 回答