2012-04-06 30 views
5

Trong android 4.0 & trên một cuộc gọi đếnNETWORK_PROVIDER không làm việc trong các phiên bản Android 4.0 trở lên/mức API 14 trở lên

LocationManager.requestLocationUpdates (LocationManager.NETWORK_PROVIDER, 0, 0, nghe)

là đưa ra ngoại lệ là

Gây ra bởi: java.lang.IllegalArgumentException: provider = network.

Ngay cả khi mạng được bật, cùng một ngoại lệ cũng xảy ra.

Tôi biết đây là sự cố được báo cáo (http://code.google.com/p/android/issues/detail?id=19857).

Câu hỏi của tôi là.

Cách nhận vị trí theo nhà cung cấp mạng hoặc bất kỳ phương pháp nào khác (không phải GPS) trong android 4.0 & ở trên?

Trả lời

0

Không sử dụng chuỗi nhà cung cấp trực tiếp vì không đảm bảo rằng nó sẽ tồn tại trong thời gian chạy.

Chỉ sử dụng các nhà cung cấp mà bạn nhận được từ các LocationManager, như thế này:

LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 

    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_COARSE); 
    String provider = locationManager.getBestProvider(criteria, true); 

    if (provider == null) { 
     Log.e(TAG, "No location provider found!"); 
     return; 
    } 

    lastLocation = locationManager.getLastKnownLocation(provider); 
1

Có một vấn đề mở khung android 4.0, vì vậy nhà cung cấp mạng không hoạt động nhưng phiên bản mới nhất android nó đã được giải quyết và làm việc thành công , Vui lòng kiểm tra mã của bạn trong khung android mới nhất.

+0

Bạn có thể cung cấp liên kết về vấn đề này không? – ihrupin

0

Có hỗ trợ này có sẵn với phiên bản mới hơn mà bạn có thể kiểm tra ..

Các vấn đề liên quan