/ / Autorisation Android non accordée à l'aide de Samsung SDK

Autorisation Android non autorisée avec Samsung SDK - Android, Android, Android, Google Maps, Samsung Galaxy, Samsung Galaxy, Samsung Galaxy, Samsung Galaxy

J'essaie de lancer cet exemple de projet où Phone est Consumer.

http://developer.samsung.com/sample-app/view.do?v=S000000069nCT030000

L'application fonctionne parfaitement avec mon HTC Desire 820 (4.4.4).

Cependant, lorsque je l’utilise sur Samsung Galaxy S4 (5.0.1), il se bloque lors de l’exécution onCreate() dans ConsumerService

Voici ma trace de pile:

FATAL EXCEPTION: main
Process: com.samsung.android.sdk.accessory.example.helloaccessory.consumer, PID: 29617
java.lang.RuntimeException: Unable to create service com.samsung.android.sdk.accessory.example.helloaccessory.consumer.ConsumerService: java.lang.SecurityException: com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY permission is required.
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3167)
at android.app.ActivityThread.access$1900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1532)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
Caused by: java.lang.SecurityException: com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY permission is required.
at com.samsung.android.sdk.accessory.SA.initialize(Unknown Source)
at com.samsung.android.sdk.accessory.SAAgent.onCreate(Unknown Source)
at com.samsung.android.sdk.accessory.example.helloaccessory.consumer.ConsumerService.onCreate(ConsumerService.java:52)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3157)
at android.app.ActivityThread.access$1900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1532)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)

Donc, fondamentalement, je manque une permission et je l’ai confirmée en utilisant:

String permission = "com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY";
int res = getContext().checkCallingOrSelfPermission(permission);
return (res == PackageManager.PERMISSION_GRANTED);

Qui est revenu false

Cependant, j’inclus cette permission dans mon fichier AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.samsung.android.sdk.accessory.example.helloaccessory.consumer"
android:versionCode="4"
android:versionName="2.0.2" >

<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="com.samsung.accessory.permission.ACCESSORY_FRAMEWORK" />
<uses-permission android:name="com.samsung.wmanager.ENABLE_NOTIFICATION" />
<uses-permission android:name="com.samsung.WATCH_APP_TYPE.Companion"/>

<application...

Je construis en utilisant gradle avec ces versions:

compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.samsung.android.sdk.accessory.example.helloaccessory.consumer"
minSdkVersion 15
targetSdkVersion 23
versionCode 4
versionName "2.0.2"
}

J'utilise aussi

compile "com.android.support:appcompat-v7:23.1.1"

Le téléphone n'est pas enraciné.

Quelqu'un sait-il pourquoi cela se produit et comment résoudre ce problème?

Merci!

Réponses:

1 pour la réponse № 1

Essayez de mettre à jour Samsung Pass SDK à 1.2.2

http://developer.samsung.com/galaxy/pass

Je ne sais pas ce qui s’est passé, mais la version 1.2.1 ne fonctionne plus et l’ajout d’une autorisation dans Androidmanifest