Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Android位置获取字符串_Android_String_Gps_Location - Fatal编程技术网

从Android位置获取字符串

从Android位置获取字符串,android,string,gps,location,Android,String,Gps,Location,我发现了一个很好的功能,它可以让我快速定位。 之后,我想显示它的(经度和纬度),但它仍然不起作用,我得到了0.0/0.0 这是密码 如果我想显示这个纬度和经度,我应该怎么做?我主要对函数getLastKnownLocation感兴趣,因为我想在不使用GPS或Internet的情况下显示这个数据 public class MainActivity extends Activity implements OnClickListener { }由于以下情况,流量永远不会进入else部分 if (!

我发现了一个很好的功能,它可以让我快速定位。 之后,我想显示它的(经度和纬度),但它仍然不起作用,我得到了0.0/0.0

这是密码

如果我想显示这个纬度和经度,我应该怎么做?我主要对函数getLastKnownLocation感兴趣,因为我想在不使用GPS或Internet的情况下显示这个数据

public class MainActivity extends Activity implements OnClickListener
{


}

由于以下情况,流量永远不会进入else部分

 if (!isGPSEnabled && !isNetworkEnabled) {
            // no network provider is enabled 
        } else { 
你需要有这样的条件

 if (!isGPSEnabled || !isNetworkEnabled) {
            // no network provider is enabled 
        } else { 

或者首先检查GPS,然后在第一次联网后,为了获取当前位置,您希望在设备中启用GPS或网络。获取lat和lng后,创建首选项并将这些值保存到首选项。因此,在getLocation()方法中进行一些更改

如果gps和网络处于禁用状态,请尝试从首选项返回保存的值。


 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

getLastKnownLocation()只返回最后一个修复。因此,如果未更新任何位置提供程序,则getLastKnownLocation()的返回值不会更改。最好使用onMyLocationChange()函数好的,我知道,但如果我以前使用的地图带有GSM或GPS,并且我得到了一些位置,那么我关闭了GSM/GPS,它应该可以工作吗?但这并不意味着你是在利用网络来获得正确的位置?你是在离开GPS对吗?在这种情况下,你的条件必须是if(!isGPSEnabled | | |!isNetworkEnabled){而不是if(!isGPSEnabled&&!isNetworkEnabled){因为你永远不会去其他地方。不,想象一下我们有两个应用程序,一个通过GPS给你定位(获取经度和纬度)首先是启动。然后我打开我的应用程序,它会给出我最后记住的位置(这是我以前得到的)。有时我点击错误,我启动谷歌地图(没有gps/gsm)这个应用程序的主要思想是快速获取位置,等待gps/gsm需要花费很多时间,但是当我们使用互联网或gps时,一些数据会随我们的位置一起发送,我想获取。如果没有gps或网络,您如何设置经度和纬度变量的值是否启用?@AndrewFielden值是通过此函数GetLastKnownLocation在else部分设置的,但它不起作用。我认为,例如,如果您的gps或网络已启用,则google maps会一直获取有关您位置的信息,如果您关闭,则它们仍会记住相同的位置,但如果您再次打开gps/网络,则仅此而已注明你的位置日期,这就是我要做的。记住这个位置听起来好像谷歌地图在缓存最后一个已知的位置。你的应用程序也需要这样做。但是,我认为这个功能工作得很好,但我做了一些小动作,这不完全是我想要做的,因为它必须在我使用网络或GPS保存后一直工作和更新位置仅在禁用gps和网络时显示。否则,您必须使用新位置更新首选项。这样您就可以从首选项中获取上次更新的位置。
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />