2012-07-12 30 views
9

Tôi muốn ứng dụng của mình truy cập vị trí GPS/Mạng nếu chúng sẵn có. Tôi không muốn Google Play lọc ra các thiết bị không có bộ định vị GPS/Mạng.Vị trí: Quyền truy cập GPS/mạng: muốn nếu có sẵn

Tôi nên làm như thế nào?

Hiện nay tôi có điều này trên manifest của tôi:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-feature android:name="android.hardware.telephony" android:required="false" /> 
<uses-feature android:name="android.hardware.location" android:required="false" /> 

Tuy nhiên, tôi không chắc chắn nó là đủ, vì http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features bang rằng:

-permission ACCESS_COARSE_LOCATION ngụ ý android.hardware.location.networkandroid.hardware.location tính năng yêu cầu

-permission * ACCESS_FINE_LOCATION ngụ ý android.hardware.location.gpsandroid.hardware.location

Tôi cũng phải thêm <uses-feature android:name="android.hardware.location.network" android:required="false" /><uses-feature android:name="android.hardware.location.gps" android:required="false" />?

Tại sao?

Không nên <uses-feature android:name="android.hardware.location" android:required="false" /> là đủ?

+0

nó nói rõ ràng và nhấn mạnh "và", vì vậy tôi giả sử bạn cần phải đặt tất cả các tính năng sử dụng. –

Trả lời

3

Có, bạn phải bao gồm tất cả vì cách thức các quyền được lưu trữ trong API. Chúng được lưu trữ dưới dạng Chuỗi trong số PackageManager class. Lấy ví dụ mà bạn quan tâm, android.hardware.location. Xem cách chuỗi này giống hệt như những gì bạn nhập vào Tệp kê khai. Google Play tìm kiếm các kết quả khớp chính xác này khi lọc. Vì vậy, android.hardware.location.gps không thực sự là một đứa trẻ của android.hardware.location, nó chỉ là đại diện như vậy vì lợi ích của tổ chức.

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