LocationManager locationManager = (LocationManager)getApp().getSystemService(Context.LOCATION_SERVICE); //getApp() returns my Application object
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER , 1, 1, this);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1, 1, this);
Run Code Online (Sandbox Code Playgroud)
那是我用来听的代码.启用GPS后,一切正常.但是,如果我禁用GPS并依赖网络位置,它会给我带来陈旧的结果 - 在这种情况下,从两天前开始.我无法让它更新.调用getLastKnownLocation返回相同的陈旧结果.
谷歌地图更新很好,所以我知道这不是硬件/系统配置问题.
我用Google搜索过,发现一些有类似问题的人,但没有答案.我已经尝试将我的项目定位到API级别8(2.2)以及15(4.0.3).结果相同.我的手机正在运行ICS.
我还试图删除对GPS_PROVIDER的请求,以及在getAllProviders()中包含对所有内容的请求.同样的交易.
知道为什么NETWORK_PROVIDER没有更新?任何帮助将不胜感激.
(PS不,我通常不会使用"1,1"作为我的时间/距离参数;我只是在调试时更改了它.)
编辑:我忘了提到是的,isProviderEnabled()返回true.
我刚刚将google play服务更新为rev 22,并且该LocationClient课程似乎缺失了.到底是怎么回事?
我有一个经过充分测试的应用程序,它使用GPS_PROVIDER和NETWORK_PROVIDER使用相同的LocationListener.
LocationManager 报告gps,网络和被动位置提供程序可用并启用.
我最近将我的Galaxy Nexus升级到4.1.1,现在NETWORK_PROVIDER它没有提供任何位置更改.使用运行4.0.4的Galaxy S III进行测试就像我习惯的那样,即使WiFi关闭,网络位置更新也会通过.当WiFi关闭时,我得到了手机信号塔的位置.
在这里与同事交谈,我不能排除某种巧合的硬件故障或某些我没有找到的默认设置更改.我在整个设置中进行了双重检查,看起来一切都已正确设置.
WiFi已打开,Cell网络已开启,GPS已开启,网络服务均已启用.我的办公桌上没有GPS信号,所以当网络位置无法提供结果时很容易注意到.
还有其他人遇到与Verizon Galaxy Nexus + 4.1.1或4.1.1以及任何手机类似的问题吗?
作为额外的皱纹,谷歌地图找到我的位置,但我PASSIVE_PROVIDER也没有生成位置.
我想在android中获取传出呼叫的位置和时间和日期.我正在使用一个广播接收器来检测新的传出呼叫,在广播接收器中我正在启动一个可以实现位置接收器的服务,用于获取每个新的拨出呼叫的当前位置,它将触发.
我的问题是:
广播接收器
public class OutGoingCallReceiver extends BroadcastReceiver {
public static String phoneNumber;
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (state == null) {
phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Intent serviceIntent = new Intent(context, NarenService.class);
context.startService(serviceIntent);
Toast.makeText(context, "Calling..to " + phoneNumber, Toast.LENGTH_SHORT).show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
服务
public class NarenService extends Service implements LocationListener {
SQLiteDatabase db;
double lat, lon;
LocationManager locationManager;
String provider;
DataProvider dataProvider;
Cursor cursor;
private static final String TAG = "NarenService";
@Override …Run Code Online (Sandbox Code Playgroud) 我的位置监听器正常工作,收集数据没有任何问题.但有时它不会收集任何数据.此时我必须关闭并重新启动我的位置提供程序.重新启动修复了问题,但是,这可能不是用户期望做的最好的事情.
当我使用GPS作为提供者时,没有问题.
位置监听器在服务中工作.我无法理解这个问题.它是关于Android还是我的代码?
提前致谢.