Trong ứng dụng của chúng tôi, chúng tôi đã sử dụng Nhà cung cấp vị trí hợp nhất (FLP) để theo dõi vị trí. Chúng tôi đã nhận thấy rằng thỉnh thoảng ứng dụng có thể vào trạng thái nơi cuộc gọi lại vị trí ngừng được gọi. Ứng dụng được đề cập được sử dụng chủ yếu trên hai máy tính bảng (một nexus 7 và LG G-pad 8.3). Chúng tôi đã thấy sự cố xảy ra trên cả hai thiết bị. Nói chung đặt lại thiết bị có vẻ như làm giảm bớt vấn đề. Chúng tôi tin rằng chúng tôi tuân theo hầu hết các phương pháp hay nhất để sử dụng FLP. Nhưng chỉ trong trường hợp chúng tôi đặt cùng mã mẫu này minh họa cách chúng tôi sử dụng FLP.Nhà cung cấp địa điểm hợp nhất - onLocationChỉ dừng được gọi là
Nhận một khách hàng google api và gọi kết nối:
m_googleApiClient = builder
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
m_googleApiClient.connect()
Sau khi kết nối, chúng tôi bắt đầu nghe cho callbacks vị trí:
@Override
public void onConnected(Bundle bundle) {
m_fusedLocationProviderApi.requestLocationUpdates(m_googleApiClient, m_locationRequest, this);
}
Các yêu cầu vị trí trông như thế này:
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
locationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
Sau đó, chúng tôi thực hiện cuộc gọi lại như sau:
@Override
public void onLocationChanged(Location location) {
// set location member var and record timestamp.
}
Khi sự cố xảy ra, chúng tôi dường như không nhận được bất kỳ lỗi gọi lại nào. Chúng tôi cũng đã thử gọi lại thiết lập lại() trên ứng dụng khách Google api khi chúng tôi phát hiện chúng tôi chưa nhận được GPS trong một thời gian dài. Chúng tôi cũng giám sát tình trạng sẵn có của vị trí bằng cách sử dụng bộ hẹn giờ cứ 2 giây một lần (sử dụng getLocationAvailability). Thông thường, chúng tôi thấy rằng việc người dùng đặt lại thiết bị của họ (bật nguồn, tắt nguồn) sẽ khắc phục sự cố.
câu hỏi của chúng tôi là:
- Đã có người khác nhận thấy vấn đề này với FLP?
- Chúng tôi có thể làm gì nhiều hơn để khắc phục sự cố không cho người dùng đặt lại? Việc xóa thêm cập nhật vị trí có giúp được không?
- Có thêm thông tin chúng tôi có thể/nên thu thập để chẩn đoán sự cố không?
Tôi gặp vấn đề chính xác tương tự. Bạn đang sử dụng phiên bản Dịch vụ Google Play nào và bạn có phiên bản hệ điều hành nào trên thiết bị khi tôi tự hỏi liệu điều đó có tạo nên sự khác biệt không? –
Gần đây tôi đã bắt đầu sử dụng 9.2.1 và chưa thấy vấn đề ở đó (ngón tay bị gạch chéo). – noahd
Tôi đã nhận được chính xác cùng một vấn đề gần đây. Bạn đã thấy vấn đề này từ khi nâng cấp phiên bản Dịch vụ Google Play của mình chưa. Cảm ơn bạn. –