java - 位置服务 [访问] 启用监听器

标签 java android

是否有某种方法可以向位置服务注册监听器,以便当用户在设置应用程序中启用它们时收到通知?

我面临的问题是,我向用户显示警报对话框以启用位置访问,通常的流程是这样的,用户将单击[启用]积极响应,但是精英用户许多不会经历这样的流程,并且直接通过设置手动启用位置访问。间接流的问题是,我无法关闭该对话框。一个合乎逻辑的解决方案是监听位置访问启用事件的 Activity 。有没有办法注册这样的监听器?

另一种不太巧妙的方法是在回调中关闭对话框

@Override
 public void onLocationChanged(Location location) {
            // check if instantiated 
            if (enableLocationAccessAlert != null) {
                enableLocationAccessAlert.dismissDialog();
            }

            findAddressPositionCamera(location);

 }

最佳答案

我认为当您实现 LocationListener 时,这些函数已经支持它:

@Override
    public void onProviderDisabled(String provider) {
        // Called when the provider is disabled by the user. If requestLocationUpdates is called on an already disabled provider, this method is called immediately.

    }

@Override
public void onProviderEnabled(String provider) {
    // Called when the provider is enabled by the user.

}



@Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // Called when the provider status changes. This method is called when a provider is unable to fetch a location or if the provider has recently become available after a period of unavailability.

    }

您只需使用这些来跟踪位置服务状态。 希望这会有所帮助。

关于java - 位置服务 [访问] 启用监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710241/

相关文章:

android - 如何更改 View 的可见性?

android - 通过第二个 Activity 从数据库传递 ListView 的项目位置

java - 在使用 cropIwa 保存图像时需要帮助

java - 如何添加 "HH:mm:ss"格式的秒表?

Java 的 Math.pow() 在简单情况下产生奇怪的结果

java - 如何在 IntelliJ IDEA 中创建 .jar 文件或导出 JAR(如 Eclipse Java 存档导出)?

java - 如何调用线程方法

java - 如何在apk中插入新文件?

java - 引用 ImageView 子类获取 ClassCastException

java - 为什么类 Cougar 需要在第 5 行实现方法的公共(public)版本,而该行没有方法(关于重载)