使用三星 SDK 未授予 Android 权限

标签 android android-manifest samsung-mobile-sdk samsung-galaxy-gear samsung-knox

我正在尝试运行这个示例项目,其中 Phone 是 Consumer。

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

应用程序在我的 HTC Desire 820 (4.4.4) 上运行完美。

但是,当我在 Samsung Galaxy S4 (5.0.1) 上运行它时,它会在 ConsumerService 中运行 onCreate() 时崩溃

这是我的堆栈跟踪:

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) 

所以基本上我缺少权限,我使用以下方式确认了这一点:

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

返回false

但是,我在我的 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...

我正在使用具有这些版本控制的 gradle 进行构建:

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'
}

我也在用

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

手机未root。

有人知道为什么会发生这种情况以及如何解决这个问题吗?

谢谢!

最佳答案

尝试更新Samsung Pass SDK到1.2.2

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

我不知道发生了什么,但是 1.2.1 在 Androidmanifest 中添加权限也不起作用。

关于使用三星 SDK 未授予 Android 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484911/

相关文章:

Android - 从市场启动小部件管理器

android - 三星多窗口崩溃

java - XML View 中的自定义游戏或绘制循环

android - 当应用程序自动启用它们时,如何在 native react 中获取应用程序权限的系统警报

java - Android 中如何设置 TextView 文本格式?

android - 将版本信息添加到 Android 应用程序

android - 在我自己的应用程序中使用三星智能滚动功能

android - 如何正确从Samsung Accessory SDK 2.2.2升级到2.3.0?

java - Android线程完成通知

android - Mapbox GL 使用外部 map