0

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

启动应用程序时,它会验证无线位置是否处于活动状态。如果没有,则会出现一个对话框,其中包含一个以 , 开头的按钮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

4

1 回答 1

1

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

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

否则,你不能。

AFAIK,那个屏幕甚至没有隐藏这些东西的能力,更不用说通过Intent额外的东西等将这种能力暴露给第三方了。此外,由于“设置”应用程序有几十个(如果不是数百个)实现(设备制造商非常频繁地更改此应用程序),即使这在少数设备上是可能的,但在其余设备上不太可能实现。

于 2013-01-17T18:18:38.250 回答