I have integrated Salesforce Marketing Cloud SDK in an Android application.

If I use:

compile 'com.exacttarget.etpushsdk:etsdk:4.9.4'

then Permissions that I do not need are added like Bluetooth

and if I use:

compile 'com.exacttarget.etpushsdk:etsdk:4.9.4@aar' (with @aar)

then some Permissions are missing (like Read External Storage) which makes the app crash when a user receives a notification that plays a sound located in his external storage.

I'm not sure which one I should use and what Permissions are automatically added or should be added manually. I can't find any information about it.

1 Answer 1


You can exclude the android-beacon-library as indicated in the documentation https://salesforce-marketingcloud.github.io/JB4A-SDK-Android-v4.9.4/sdk-implementation/implement-sdk-google.html. This would remove the unnecessary BlueTooth permission that is getting included by the library.

dependencies {
  compile ('com.exacttarget.etpushsdk:etsdk:4.9.+') {
    // exclude module: 'android-beacon-library'
    // exclude module: 'play-services-location'

If your application is using a media file in external storage then your application will require those permissions, but that is not part of what the SDK requires.

  • Thanks for your answer, I will do that. Regarding the crash it looks like it is related to the SDK: com.exacttarget.etpushsdk.h.c java.lang.SecurityException: External path: /storage/emulated/0/media/audio/notifications/Toinkmp3Powiadomienie.mp3: Neither user 10226 nor current process has android.permission.READ_EXTERNAL_STORAGE. Commented Jun 27, 2017 at 14:57
  • Again, the SDK does not require these permissions. If, however, your application is using a notification sound stored in external media then your application will require these permissions.
    – Bill Mote
    Commented Jun 27, 2017 at 15:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .