ToolKitService代码中配置错误,修复后启动遇到Caused by: java.lang.SecurityException: Starting FGS

オープン
#29 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
android, java
領域
mobile, security

調査の方向性

Start by comparing the manifest service declaration with com.tencent.trtc.apiexample.ToolKitService, then inspect ToolKitService.onCreate at line 33 and the Android 14 foreground-service exception. Verify the corrected declaration and required permission handling on a target SDK 34 device; done means the service starts without the reported SecurityException.

索引モデルが issue の本文から書いたものです。

説明

ToolKitService默认配置是这样:

<service
            android:name="com.tencent.liteav.utils.ToolKitService"
            android:foregroundServiceType="mediaProjection"
            android:enabled="true"
            android:exported="false" />

这个配置和实际上ToolKitService所在路径不一样。
代码是com.tencent.trtc.apiexample.ToolKitService。
如果我修复这个路径,把target 设置34,跑在34设备上。就会遇到下面错误:

JavaExceptionHandler                 E  Process: com.tencent.trtc.api_example, PID: 12687
                                        java.lang.RuntimeException: Unable to create service com.tencent.trtc.apiexample.ToolKitService: java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{3a0477f 12687:com.tencent.trtc.api_example/u0a374} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media] 
                                        	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4991)
                                        	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
                                        	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2478)
                                        	at android.os.Handler.dispatchMessage(Handler.java:106)
                                        	at android.os.Looper.loopOnce(Looper.java:222)
                                        	at android.os.Looper.loop(Looper.java:314)
                                        	at android.app.ActivityThread.main(ActivityThread.java:8816)
                                        	at java.lang.reflect.Method.invoke(Native Method)
                                        	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
                                        	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1090)
                                        Caused by: java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{3a0477f 12687:com.tencent.trtc.api_example/u0a374} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media] 
                                        	at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
                                        	at android.os.Parcel.createException(Parcel.java:3041)
                                        	at android.os.Parcel.readException(Parcel.java:3024)
                                        	at android.os.Parcel.readException(Parcel.java:2966)
                                        	at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7310)
                                        	at android.app.Service.startForeground(Service.java:775)
                                        	at com.tencent.trtc.apiexample.ToolKitService.onCreate(ToolKitService.java:33)
                                        	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4978)
                                        	at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0) 
                                        	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2478) 
                                        	at android.os.Handler.dispatchMessage(Handler.java:106) 
                                        	at android.os.Looper.loopOnce(Looper.java:222) 
                                        	at android.os.Looper.loop(Looper.java:314) 
                                        	at android.app.ActivityThread.main(ActivityThread.java:8816) 
                                        	at java.lang.reflect.Method.invoke(Native Method) 
                                        	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569) 
                                        	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1090) 
主要言語
Java
スター
60
フォーク
48
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Tencent-RTC/TRTC_Android のほかの issue

Tencent-RTC/TRTC_Android の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。