Sonim XP9900(Android12)下Spcc API权限未授权SecurityException求助
Android应用在Sonim XP9900(Android 12)上的SPCC权限崩溃排查
问题描述
我有一款上架Google Play的小型安卓应用,仅在**Sonim XP9900(Android 12/API 31)**设备上出现崩溃,错误日志显示SPCC API权限未授予。已知Sonim设备自带Scout应用,通过SPCC服务监控设备内所有应用,但未找到SPCC API权限的明确文档。
已尝试授予蓝牙、位置等额外权限,问题仍存在;联系Sonim支持团队暂未收到回复。
错误日志
stackTrace: java.lang.SecurityException: Spcc API access permission is not granted for uid=10221 pkgName=com.xxx.xxx pkgList=[com.xxx.xxx] at android.os.Parcel.createExceptionOrNull(Parcel.java:2426) at android.os.Parcel.createException(Parcel.java:2410) at android.os.Parcel.readException(Parcel.java:2393) at android.os.Parcel.readException(Parcel.java:2335) at android.view.IWindowSession$Stub$Proxy.remove(IWindowSession.java:1439) at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:5007) at android.view.ViewRootImpl.doDie(ViewRootImpl.java:8153) at android.view.ViewRootImpl.die(ViewRootImpl.java:8130) at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:499) at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:440) at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:164) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5476) at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5751) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5667) at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:71) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:61) at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:5734) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2224) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7916) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:577) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009) Caused by: android.os.RemoteException: Remote stack trace: at com.sonim.spccplatformjar.utils.Utils.checkAccessPermission(Utils.java:22) at com.sonim.spccplatformjar.settings.SPCCFrameworkAPI.startWindowRPSNotify(SPCCFrameworkAPI.java:669) at com.android.server.wm.ActivityRecord.onWindowsVisible(ActivityRecord.java:6005) at com.android.server.wm.ActivityRecord.updateReportedVisibilityLocked(ActivityRecord.java:6101) at com.android.server.wm.WindowStateAnimator.onAnimationFinished(WindowStateAnimator.java:218)
排查方向
- 检查Sonim设备专属配置:打开设备自带的Scout应用,查看是否有应用信任/白名单设置,尝试将你的应用添加到允许列表中,部分Sonim设备的SPCC服务会限制未被信任的应用。
- 异常兜底处理:在Activity重启相关流程(如
onDestroy、recreate()调用处)添加try-catch块,捕获SecurityException,避免崩溃导致应用退出。因为该异常是厂商SPCC服务触发,应用本身无法直接获取对应权限,只能做容错处理。 - 规避触发场景:崩溃发生在Activity重启环节,梳理应用中触发Activity重启的操作(如屏幕旋转、配置变更、手动调用
recreate()),尝试通过调整配置(如在Manifest中声明android:configChanges避免系统重启Activity)来减少该场景的出现。 - 查找厂商隐藏权限:再次查阅Sonim官方开发者资源,搜索SPCC、Scout相关的权限文档,可能需要在Manifest中声明Sonim自定义的权限(如
com.sonim.spcc.permission.ACCESS_SPCC_API这类格式)。 - 系统补丁验证:确认设备是否有Android 12的系统更新,尝试升级到最新系统版本,排查是否是厂商系统层面的权限校验bug导致。
- 复现场景分析:在Sonim XP9900设备上复现Activity重启的具体场景,观察Scout应用的实时监控日志或提示,是否有相关权限拦截的信息可以参考。
内容的提问来源于stack exchange,提问作者SRKS
相关产品推荐
相关产品推荐

