创建空白位置对象
我和其他几个人正在开发一个 Android 应用程序。它需要定位设备的纬度和经度。我们已经能够创建一个位置对象,但该对象始终为空。我们甚至尝试在一个完全空的项目中重新创建代码,但这也失败了。这是我们的根本活动:
package com.app.Locationtest;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
public class locationtest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager locman =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location loc = locman.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (loc==null)
{
finish();
}
}
}
这是清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.Locationtest"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".locationtest"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
我们如何解决这个问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有时设备需要太多时间来检索位置,这是检索 android 站点:
我使用自定义位置侦听器并开始侦听位置更新,因为我的应用程序已初始化,即使我没有显示地图:
我有一个正在侦听位置的线程,因此当用户点击并调用我的地图视图时,如果位置为空,我们向用户发送一条消息,等待我们检索他的位置。
您可能想要开发一种方法来选择更好的位置,因为最后一个位置可能不是最佳位置,请尝试使用以下方法:
此代码在我链接的同一页面上提供。
希望这有帮助!
Sometimes the device needs too much time to retrieve the location, this is the flow for retrieving locations listed on the android site:
I use a custom location listener and start listening for location updates, since my app is initialized, even if I'm not showing the map:
I have a thread that is listening the locations, so when a user taps and calls my mapview, if the location is null, we send a msg to the user, to wait while we are retrieving his location.
You might want to develop a method to choose the better location, because the last location maybe is not the best location, try with this:
This code is provided on the same page I linked.
Hope this helps!
getLastKnownLocation() javadoc说:“..如果提供程序当前被禁用,则返回 null。”
所以它依赖于 GPS,但它不会打开它。它用于搭载其他使用 GPS 的应用程序。
getLastKnownLocation() javadoc says: ".. If the provider is currently disabled, null is returned."
So it relies on GPS but it does not turn it on. It is used to piggyback on other applications using GPS.