我正在开发一个应用程序,在该应用程序中,我使用 NETWORK_PROVIDER 获取用户位置,它在几乎所有设备上都可以正常工作,但在 KARBONN A15 上,当我们使用 NETWORK_PROVIDER 时永远不会调用 onLocationChanged() 但是如果我们在设置中启用或禁用网络提供程序 onProviderEnabled() 和onProviderDisabled() 被调用,这排除了如果我使用 GPS_PROVIDER 而不是 NETWORK_PROVIDER 而不是完美调用 onLocationChanged 时,位置监听器可能没有正确连接的可能性。
下面是代码片段:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10*1000, 0, this);
}
public void onLocationChanged(Location location) {
Log.i("LocationDemo", "onLocationChanged() called with " + location.toString());
}
public void onProviderDisabled(String provider) {
Log.i("LocationDemo", "onProviderDisabled() called with " + provider);
}
public void onProviderEnabled(String provider) {
Log.i("LocationDemo", "onProviderEnabled() called with " + provider);
}
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.i("LocationDemo", "onStatusChanged() called with " + provider);
}
感谢您的支持,我已经就此与 Karbonn 取得联系。我可以做些什么来检查设备出了什么问题,如果我能够识别问题,这将很有帮助。
我用谷歌搜索了这个问题,发现有一个 NetworkLocationService 可能正在为网络提供商进行位置查找,但我不知道如何检查它是否点击了正确的谷歌位置服务器的 URL 或者来自的响应是什么服务器以防万一。
我试图检查日志,我认为有些东西可能是问题的根源。
以下是日志:
01-02 19:17:06.790: I/ONCRPC(109): oncrpc_proxy_handle_cmd_rpc_call: Dispatching xid: 6b6 01-02 19:17:06.790: I/ONCRPC(109): oncrpc_xdr_reply_msg_start: Prog: 00000000, Ver: 00000000, Proc: 00000000 Xid: 000006b6 01-02 19:17:06.790: I/ONCRPC(109): oncrpc_msg_reply: Prog: 00000000, Ver: 00000000, Proc: 00000000 Xid: 000006b6 01-02 19:17:06.790: I/ONCRPC(109): oncrpc_proxy_handle_cmd_rpc_call: Dispatch returned for xid: 6b6