Android Gmaps提示用户在MyLocationButton上启用gps点击

时间:2017-02-05 22:25:33

标签: android google-maps gps mylocationoverlay

问题:在Google地图上启用了MyLocationButton,GPS已关闭。当用户点击它时,它就会无声地失败。这是一个非常糟糕的用户交互。我希望它能够提示用户更改GPS设置(就像谷歌地图上的实际情况一样)。

似乎我可以重新定义按钮的处理程序,但我喜欢等待用户位置和居中地图部分(并且很乐意避免重写它)。有没有办法赶上按钮失败事件?

感谢。

1 个答案:

答案 0 :(得分:-1)

我认为这将通过检查GPS是否已启用来解决,并在用户被禁用时提醒用户。我从this link复制了代码。

final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );

    if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
        buildAlertMessageNoGps();
    }

private void buildAlertMessageNoGps() {
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Your GPS seems to be disabled, do you want to enable it?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                   startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
               }
           })
           .setNegativeButton("No", new DialogInterface.OnClickListener() {
               public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                    dialog.cancel();
               }
           });
    final AlertDialog alert = builder.create();
    alert.show();
}