如何在Settings.ACTION_SECURITY_SETTINGS intent中过滤不必要的设置

时间:2013-01-17 18:03:04

标签: android networking location settings

我正在开发一个使用位置的应用。

启动应用时,它会验证无线位置是否处于活动状态。如果没有,则会出现一个对话框,其中包含一个按钮,用于启动IntentSettings.ACTION_SECURITY_SETTINGS以显示位置设置。

我想让我的用户完成这项任务,并隐藏不必要的设置,这些设置可能会让他们选择错误的设置并再次获得相同的对话框。

此应用程序不需要GPS精度。在某些情况下,智能手机可能无法找到GPS信号,或者可能需要很长时间才能跟踪位置,从而导致我的应用程序无法及时显示结果,从而使无线网络成为可能。获得位置的更好选择。

以下是我用来测试无线网络的一些代码"处于活动状态并打开设置:

private void checkLocationEnabled() {
    String provider = Settings.Secure.getString(getContentResolver(), 
                                     Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    if (provider == null || !provider.contains("network")) {
        // Wireless location not enabled
        showDialog();           
    }
}

private void showDialog(){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("No network location. Please, activate this setting in "
                            + "Location And Security")
           .setCancelable(false)
           .setPositiveButton("Settings", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
                   startActivity(intent);                           
               }
           })
           .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   MainActivity.this.finish();
               }
           });
    Dialog dialog = builder.create();
}

如何过滤Settings.ACTION_SECURITY_SETTINGS以仅显示无线网络选项并删除 GPS 以及Intent中的所有剩余选项?< / p>

1 个答案:

答案 0 :(得分:1)

  

如何过滤“Settings.ACTION_SECURITY_SETTINGS”以仅显示“无线网络”选项并移除GPS以及“意图”中的所有剩余选项?

您构建自己的Android版本,支持此功能,并以ROM mod的形式发布。

否则,你不能。

AFAIK,该屏幕甚至不具备隐藏这些功能的能力,更不用说通过Intent附加功能等将该功能暴露给第三方。此外,由于设置应用程序(设备制造商非常频繁地更改此应用程序)有几十个(如果不是数百个)实现,即使在少数设备上可以实现,也不可能在其余设备上实现。< / p>