#9883·ExoPlayer

致命例外 无论是用户还是当前进程都没有和roid.permission. 摇动( L)

作者: BrettyWhite创建于 2022年1月21日更新于 2026年1月8日
标签questionneeds triage

你好,我遇到一个奇怪的错误 Exoplayer,特别是Galaxy S20和S21设备运行Android 12。

用户/进程没有唤醒锁权限:

(https://user-images.githubusercontent.com/3911458/150541743-c7f163fa-8702-4056-b9f3-8616a22190eb.png) (中文(中国大陆) ).

我有"Wake-LOCK"的许可:

\ xml 时 (英语). <使用-permission android:name='android.permission. [永久失效連結] (中文(中国大陆) ). 摇摆/> <使用-permission android:name='android.permission.ACCESS NETWORK STATE> (中文(简体) ). <使用-permission android:name='android.permission. [永久失效連結] (中文(中国大陆) ). 因特网网”/> <us-permission and roid:name='android.permission.FOREGROUND SERVICE> (法语).


我用"设置WakeMode"来处理锁,而不是自己处理:

库特林
私人乐趣 initPlayer () {
mCrentPlayer = mContext?. let { Exoplayer.Builder (it).builder ()} 建置 () :
mCrentPlayer?. Ready = true 时播放
mCurrentPlayer?.repeatMode=player.REPEAT MODE ALL (英语).
val 介质Source=创建MediaSource ()
如果(媒体来源!=无效){
mCurrentPlayer?. set 介质源(介质源)
mCrentPlayer? 添加倾听者( 玩家倾听者)
mCrentPlayer?. setWakeMode(C.Wake mode NETWORK) 互联网档案馆的存檔,存档日期2014-12-21.
mCurrentPlayer?. opulation =  sound. opulations. to Float () (中文(简体) ).
mCrentPlayer?.prepare () (中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

在我的特定使用情况下,可能会有多个玩家以和上个例子相同的方式被设置,都同时运行. 该服务是一个 " 媒体浏览器服务 " ,该应用长期用于在背景中播放声音。

我没有亲身经历过这个问题, 也不能在我的像素5a上复制它 运行12, 并好奇是否有人看到这个 或者可能知道 如果我做错了什么。

受影响的设备 : 三星S21 5G - 安卓12号

  • 三星S20超超人 - 安卓12号

Exoplayer 版本: 2.16.1 App的目标API:30

谢谢!

电话:

追踪的其他部分:

由Android.os导致. 远程排除
远程堆栈跟踪: at android.app. Context Impl.enforce(Context Impl.java:2273) at android.app. Context Impl.enforce Calling Or SelfPermission(Context Impl.java:2301) at com.android.ser.power.powerMangerService$BinderService.aquireWakeLock(PowerManagerService.java:8202) at android.os.Binder.execent.internal(Binder.java:1215) at android.os.

内容来源: google/ExoPlayer