我有一个应用程序几乎总是需要知道用户位置。
当我需要访问某个位置时,我会这样做:
final AlertDialog.Builder builder = new AlertDialog.Builder(
MapScreen.this);
builder.setTitle("MyAppName");
builder.setMessage("The location service is off. Do you want to turn it on?");
builder.setPositiveButton("Enable location",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
final DialogInterface dialogInterface,
final int i) {
startActivity(new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
});
builder.setNegativeButton("Continue without location", null);
builder.create().show();
然而,GPS给了我一些并不总是足够精确的信息。 Wi-Fi总是给我足够的准确性,所以我想要求用户打开Wi-Fi,就像我要求他们打开位置一样。我不想只打开它,我希望用户收到有关它的通知,并手动启用它。
是否有任何意图将WiFi菜单带给用户?
答案 0 :(得分:12)
以下意图显示了无线设置,如Wi-Fi,蓝牙和移动网络:
startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
有关设置的完整列表:https://developer.android.com/reference/android/provider/Settings.html
有关startActivity
方法的文档:
https://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent)
(请记住startActivity
只是扔掉而忘记,如果你想捕获用户所做的响应,你可以改为调用startActivityForResult
,在这种情况下可能不需要)< / p>
答案 1 :(得分:4)
你可以尝试
Intent i = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
startActivity(i);
答案 2 :(得分:2)
以前的答案引用了&#34; Settings.ACTION_WIRELESS_SETTINGS&#34;,但它太笼统了,因为它会打开一般无线连接的设置,而问题只是关于wifi。 我正在使用&#34; Settings.ACTION_WIFI_SETTINGS&#34;如下
Intent turnWifiOn = new Intent(Settings.ACTION_WIFI_SETTINGS);
startActivity(turnWifiOn);
注意:它不会只打开一个对话框,而是打开一个活动。