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.


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. – Arnaud SmartFun Jun 27 '17 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 Jun 27 '17 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.