【问题标题】:Android - Why do location services not work using restricted profile?Android - 为什么位置服务不能使用受限配置文件工作?
【发布时间】:2015-02-25 18:16:02
【问题描述】:

我正在使用 Appcelerator 创建一个移动应用程序,该应用程序使用 Geolocation 根据用户操作在特定时间获取坐标。在 iOS 上它可以完美运行,在 Android 上它可以完美运行,但仅当以设备所有者身份登录时,而不是在受限配置文件下登录时。在受限配置文件下登录时会出现以下两个错误之一:1) 位置当前可用或 2) 无法访问当前位置。我已确保在受限配置文件下启用了位置服务。

这是 AndroidManifest.xml 的使用权限部分:

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>

这是我正在使用的地理定位功能:

    if (Titanium.Geolocation.locationServicesEnabled == true)
    {
        if (platform == 'android')
        {
            Titanium.Geolocation.Android.accuracy = Titanium.Geolocation.ACCURACY_HIGH;
        }
        else
        {
            Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_HIGH;
        }
        Titanium.Geolocation.locationServicesAuthorization = Titanium.Geolocation.AUTHORIZATION_WHEN_IN_USE;
        Titanium.Geolocation.distanceFilter = 5;
        Titanium.Geolocation.preferredProvider = Titanium.Geolocation.PROVIDER_GPS;

        Titanium.Geolocation.getCurrentPosition(function(e){
            clearTimeout(timer2);
            setTimeout(function()
            {
                if (!e.success || e.error)
                {
                    alert('Error: ' + e.error);
                    //alert('An error occured getting your location.  Please close and try again.');
                    return;
                }
                currLongitude = e.coords.longitude;
                currLatitude = e.coords.latitude;
                CheckSave();
            }, 2000);
        });
    }   
    else
    {
        alert('Please enable location services.');
    }

我在 getCurrentPosition 中使用 setTimer 来给设备足够的时间来获取坐标。同样,我遇到的唯一问题是在以受限配置文件登录的 Android 设备上使用该应用程序。关于这个还能做什么?在此先感谢您对此问题的任何帮助。

【问题讨论】:

  • 找到问题并解决。问题:我在所有者配置文件下安装并使用了应用程序测试功能,然后切换到受限配置文件。使用期间存储在所有者配置文件下的数据仍然存在。解决方案:清除 RESTRICTED 配置文件下应用程序上的数据并运行应用程序...问题已解决!希望这对其他人有帮助,因为这困扰了我 3 天。

标签: service geolocation location


【解决方案1】:

找到问题并解决。问题:我在所有者配置文件下安装并使用了应用程序测试功能,然后切换到受限配置文件。使用期间存储在所有者配置文件下的数据仍然存在。解决方案:清除 RESTRICTED 配置文件下应用程序上的数据并运行应用程序...问题已解决!希望这对其他人有帮助,因为这困扰了我 3 天。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2017-09-20
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2012-02-23
    相关资源
    最近更新 更多