27

tôi nhận thấy rằng các điều khoản sau đây đã được tự động thêm vào khi tôi sử dụng sau đây trong tập tin build.gradle tôiTại sao các quyền được tự động thêm vào AndroidManifest của tôi khi đó có thư viện Google Play Services

compile 'com.google.android.gms:play-services:7.5.0' 

này đã không xảy ra với các phiên bản trước của dịch vụ phát. có ai có giải pháp để xóa các quyền không mong muốn này không?

Tôi chỉ đang sử dụng chức năng quảng cáo (INTERNET và ACCESSNETWORK_STATE). Tôi không cần điều khoản LOCATION và USE_CREDENTIALS. Làm cách nào để xóa các quyền không mong muốn này?

tôi nhận thấy rằng 'manifest-sáp nhập-xxx-debug-report.txt' tập tin chứa sau

...<snipped bunch of other merges> 
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5 
    android:name 
     ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22 
uses-permission#android.permission.ACCESS_COARSE_LOCATION 
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5 
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 
    android:name 
     ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22 
uses-feature#0x00020000 
ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5 
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 
    android:glEsVersion 
     ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8 
    android:required 
     ADDED from com.google.android.gms:play-services-maps:7.5.0:26:8 
android:uses-permission#android.permission.READ_EXTERNAL_STORAGE 
IMPLIED from AndroidManifest.xml:2:1 reason: com.google.android.gms.maps requested WRITE_EXTERNAL_STORAGE 
uses-permission#android.permission.GET_ACCOUNTS 
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:5 
    android:name 
     ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:22 
uses-permission#android.permission.USE_CREDENTIALS 
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:5 
    android:name 
     ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:22 
meta-data#com.google.android.gms.wallet.api.enabled 
...<snips more lines away> 

Trả lời

43

Khi bạn sử dụng

compile 'com.google.android.gms:play-services:7.5.0' 

Điều này có nghĩa bạn đang sử dụng mỗi tính năng của Dịch vụ của Google Play, bao gồm cả dịch vụ vị trí. Nếu bạn chỉ cần một API cụ thể, bạn nên sử dụng selective APIs.

Trong trường hợp quảng cáo, bạn có thể sử dụng chỉ duy nhất:

compile 'com.google.android.gms:play-services-ads:7.5.0' 
+3

ahhh. đã sửa nó. Thật kỳ lạ khi hướng dẫn bắt đầu nhanh chóng gọi cho chúng tôi để sử dụng tất cả các dịch vụ thay vì chỉ gói quảng cáo. https://developers.google.com/admob/android/quick-start –

+1

@AngelKoh - Tôi đã gửi một lỗi với nhóm tài liệu của Google để có được hướng dẫn bắt đầu nhanh được cập nhật. Cảm ơn bạn đã chỉ ra điều đó! – ianhanniballake

+0

@ianhanniballake Theo bài đăng trên blog này (http://googleadsdeveloper.blogspot.com/2014/12/announcing-v65-of-google-mobile-ads-sdk.html), có một thông báo trước rằng phương pháp này không làm việc nếu bạn khởi tạo quảng cáo biểu ngữ từ XML –

15

Bạn có thể loại trừ những người tự động thêm vào điều khoản nếu tính năng ứng dụng của bạn không đòi hỏi.

Trong trường hợp của tôi, tôi đang sử dụng Google wallet dịch vụ phát 8.3, thêm GET_ACCOUNTSUSE_CREDENTIALS. Chúng tôi không yêu cầu người dùng chọn tài khoản google để chọn ví google.

<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove"/> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" tools:node="remove" /> 

tools:node="remove" thực hiện thủ thuật khi tạo tệp kê khai đầy đủ.

Xem toàn bộ cuối cùng AndroidManifest.xml tại /build/intermediates/manifest/full/debug

+0

Điều này phù hợp hơn với tôi kể từ khi Dịch vụ Play 8.3, phụ thuộc vào dịch vụ 'play-services-ads' mang đến quyền 'WAKE_LOCK'. –

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