我正在开发一个应用程序,如果设备是根设备,它实际上工作得很好,但现在我正在为非根设备做一些事情。此时,我需要使用以下代码(或类似的代码)来下载xtra.bin并解压缩到设备>
public static void downloadGPSXtra(Context context)
{
LocationManager locationmanager = (LocationManager)context.getSystemService("location");
Bundle bundle = new Bundle();
locationmanager.sendExtraCommand("gps", "force_xtra_injection", bundle);
locationmanager.sendExtraCommand("gps", "force_time_injection", bundle);
}然后我使用以下代码来“执行”它>
lto_downloader.downloadGPSXtra(lto_downloader.this);好吧,我不知道为什么(显然),但它没有工作。在中只从logcat得到了一些关于时间注入的回复>
D/GpsLocationProvider( 3131): NTP server returned: 1297364952086 (Thu Feb 10 19:
09:12 GMT+00:00 2011) reference: 9750010 certainty: 337 system time offset: -483
80我知道由于我在/data/gps/lto.dat上看不到任何变化,所以"force_xtra_injection“无法工作
发布于 2011-02-12 00:06:26
好吧,我是GPS状态的作者,除了你现在正在做的事情,我真的不做任何其他的事情。(即调用sendExtraCommand方法。实际上,我程序中还有3行代码:),我猜这些文件是特定于实现/手持设备的。我的手机上甚至没有/data/gps目录。(Nexus One)
发布于 2011-02-11 17:08:45
我想,你的代码可以工作了。(假设您已向清单中添加了所需的权限)。您不应期望应用程序的数据目录中有任何更改。下载的XTRA数据直接注入GPS子系统,根本不存储在文件系统中。根据我的经验,检查注入是否成功的唯一方法是重置GPS状态,然后调用inject方法,看看GPS能以多快的速度获得锁。
发布于 2012-06-02 05:29:23
只有当命令未知时,LocationManager才会返回false。如果LocationManager知道该命令,它会将该命令排入队列,然后返回true,这就是它所做的一切。
无论注入是否成功,除了查看logcat (如果有任何内容将在那里显示)之外,没有其他方法可以进行检查。
https://stackoverflow.com/questions/4961514
复制相似问题