NETWORK_PROVIDER 不提供位置更新
Posted
技术标签:
【中文标题】NETWORK_PROVIDER 不提供位置更新【英文标题】:NETWORK_PROVIDER is not giving location updates 【发布时间】:2011-07-15 18:21:14 【问题描述】:我的程序运行良好,但突然NETWORK_PROVIDER
停止提供位置更新。
如果启用了WIFI,它也不起作用。
有人知道为什么吗?
谢谢!
这是一些(加密的)Java:
package com.tripr;
public class MyWallpaperService extends WallpaperService
<snip>
@Override
public Engine onCreateEngine()
return new CubeEngine(this);
class CubeEngine extends Engine implements LocationListener
private MyWallpaperService mws;
private LocationManager lm;
<snip>
CubeEngine(MyWallpaperService mymws)
mws = mymws;
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
requestLocationUpdates();
MyThread myThread = new MyThread(lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER));
myThread.start();
void requestLocationUpdates()
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000*30, 10, this);
void removeUpdates()
lm.removeUpdates(this);
@Override
public void onLocationChanged(Location location)
MyThread myThread = new MyThread(location);
myThread.start();
<snip>
和清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tripr"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.software.live_wallpaper" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<service android:name=".MyWallpaperService"
android:label="@string/app_name"
android:icon="@drawable/icon"
android:permission="android.permission.BIND_WALLPAPER">
<intent-filter>
<action android:name="android.service.wallpaper.WallpaperService" />
</intent-filter>
<meta-data android:name="android.service.wallpaper"
android:resource="@xml/livewallpaper" />
</service>
</application>
</manifest>
【问题讨论】:
你在实际设备上试过了吗?不知道能不能在模拟器上实现NETWORK_PROVIDER服务…… 是的,我在两个不同的设备上都试过了,但都没有工作 检查 isLocationProviderEnabled(LocationManager.NETWORK_PROVIDER) 吗? 是的,它被禁用了,谢谢!,你能把它作为解决方案发布吗? (它的isProviderEnabled
,不是isLocationProviderEnabled
)
【参考方案1】:
为了确保 NETWORK_PROVIDER 是否像这样进行操作检查,
if(isLocationProviderEnabled(LocationManager.NETWORK_PROVIDER))
Log.i("PROVIDER", "ENABLED");
【讨论】:
以上是关于NETWORK_PROVIDER 不提供位置更新的主要内容,如果未能解决你的问题,请参考以下文章
如果 WiFi 关闭,Android 的 network_provider locationprovider 从不返回任何内容?