应用程序打开时如何以编程方式恢复位置访问

Posted

技术标签:

【中文标题】应用程序打开时如何以编程方式恢复位置访问【英文标题】:How to resume Location access programmatically when app open 【发布时间】:2020-01-08 23:20:41 【问题描述】:

我开发了一个 GPS 应用程序,但它在位置服务关闭并再次打开时可以正常工作。在没有定位服务的情况下获取 GPS 并再次打开 GPS 时,纬度和经度不正确。我该如何解决?

public void onLocationChanged(Location location) 

    try 

        latitute = location.getLatitude();
        longitude = location.getLongitude();
        accuracy = location.getAccuracy();
        Provider = location.getProvider();

        Toast.makeText(getContext(), "onLocationChanged: " + "Lat: " + latitute + "Lon: " + longitude, Toast.LENGTH_SHORT).show();

        latituteField.setText(String.valueOf((double) latitute));
        longitudeField.setText(String.valueOf((double) longitude));
        txtaccuracy.setText(String.valueOf((double) accuracy));
        txtprovider.setText(String.valueOf(Provider));

     catch (Exception e) 

    

【问题讨论】:

您使用哪个提供商?是 FusedLocationProvider 吗? 【参考方案1】:

检查您的活动的 onResume() 方法是否启用了 Gps。 如果未启用 Gps,则要求用户在设置中启用 GPS/网络。 启用 GPS 后,启动您的 GPSTracker 服务以获取位置。

 @Override
protected void onResume() 
    super.onResume();
   // Check if GPS is not enabled
    if (!canGetLocation) 
        // GPS or network is not enabled.
        // Ask user to enable GPS/network in settings.

    

【讨论】:

以上是关于应用程序打开时如何以编程方式恢复位置访问的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的“允许位置访问”在我打开时总是关闭?

iPhone SDK - 如何在应用程序关闭和重新打开时保存和恢复计时器标签

Solitaire 纸牌游戏 - 如何编程恢复游戏功能?

如何以编程方式重新启用 MS Office 禁用文件列表中的文档

位置服务关闭时,Windows 8 手机应用程序在打开时崩溃

如何在android中以编程方式启用位置访问?