欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

安卓14前端服務(wù)foregroundService權(quán)限問題解決辦法

 更新時間:2025年09月19日 09:32:12   作者:周neo  
Android服務(wù)(Service)是應(yīng)用組件,它可以在后臺執(zhí)行長時間運行的操作,而不提供用戶界面,這篇文章主要介紹了安卓14前端服務(wù)foregroundService權(quán)限問題解決的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

發(fā)現(xiàn)問題

在安卓應(yīng)用開發(fā)過程中,我們會使用到service,普通的service我們只需要在AndroidMainfest.xml文件中添加service類就好

<application
    <service android:name=".service.MyService" />
</application>

前端服務(wù)foregroundService還需要添加

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

但如果只是這樣,啟動前端服務(wù)還是會報錯

經(jīng)查資料發(fā)現(xiàn):

Android 14(API 34)對前臺服務(wù)的權(quán)限體系進行了深度重構(gòu):

1.細(xì)分權(quán)限體系
除基礎(chǔ)權(quán)限 FOREGROUND_SERVICE 外,必須根據(jù)服務(wù)類型聲明對應(yīng)的細(xì)分權(quán)限:

除基礎(chǔ)權(quán)限 FOREGROUND_SERVICE 外,必須根據(jù)服務(wù)類型聲明對應(yīng)的細(xì)分權(quán)限:

  • 數(shù)據(jù)同步服務(wù):FOREGROUND_SERVICE_DATA_SYNC
  • 位置服務(wù):FOREGROUND_SERVICE_LOCATION
  • 媒體播放服務(wù):FOREGROUND_SERVICE_MEDIA_PLAYBACK
  • 電話服務(wù):FOREGROUND_SERVICE_PHONE_CALL

2.服務(wù)類型強校驗

系統(tǒng)會嚴(yán)格驗證 android:foregroundServiceType 屬性與權(quán)限的匹配性,不匹配將拋出 SecurityException

java.lang.SecurityException: 
ForegroundServiceType dataSync requires android.permission.FOREGROUND_SERVICE_DATA_SYNC

3.通知權(quán)限前置要求

從 Android 13(API 33)開始,顯示通知的前臺服務(wù)必須動態(tài)請求 POST_NOTIFICATIONS 權(quán)限

解決方案

在AndroidMainfest.xml清單文件中這樣添加:

    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />

    
    <application
        <service
            android:name=".service.MyForegroundService"
            android:enabled="true"
            android:exported="false"
            android:foregroundServiceType="dataSync">
        </service>

    </application>

Java代碼中前端服務(wù)實現(xiàn)

  @Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG, "onCreate:");
        Toast.makeText(this, "服務(wù)已經(jīng)啟動", Toast.LENGTH_LONG).show();

        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel(
                    "channel_id",
                    "通知",
                    NotificationManager.IMPORTANCE_DEFAULT
            );
            notificationManager.createNotificationChannel(channel);
        }

        //創(chuàng)建通知

        Notification notification = new NotificationCompat.Builder(this, "channel_id")
                .setSmallIcon(R.drawable.baseline_music_note_24)
                .setContentTitle("這是標(biāo)題")
                .setContentText("這是內(nèi)容")
                .build();
        startForeground(1, notification);
    }

運行如果發(fā)現(xiàn)通知欄中不存在,還需要進入設(shè)置->應(yīng)用中打開app的通知權(quán)限

最后大家可以通過adb檢查服務(wù)狀態(tài)

adb shell dumpsys activity services | grep "ForegroundService"

總結(jié) 

到此這篇關(guān)于安卓14前端服務(wù)foregroundService權(quán)限問題解決辦法的文章就介紹到這了,更多相關(guān)安卓14前端服務(wù)foregroundService權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Android 高CPU占用率的問題

    解決Android 高CPU占用率的問題

    最近測試測試APP的一個功能,發(fā)現(xiàn)點擊頁面上的按鈕后,CPU占有率比之前的版本要高,所以本文給大家介紹了如何解決Android 高CPU占用率的問題,需要的朋友可以參考下
    2023-09-09
  • Android開發(fā)跳轉(zhuǎn)應(yīng)用市場進行版本更新功能實現(xiàn)

    Android開發(fā)跳轉(zhuǎn)應(yīng)用市場進行版本更新功能實現(xiàn)

    這篇文章主要為大家介紹了Android實現(xiàn)跳轉(zhuǎn)到應(yīng)用市場進行版本更新功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Android自定義RadioGroupX實現(xiàn)多行多列布局

    Android自定義RadioGroupX實現(xiàn)多行多列布局

    這篇文章主要為大家詳細(xì)介紹了Android自定義RadioGroupX實現(xiàn)多行多列布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • android開發(fā)實踐之ndk編譯命令簡單示例

    android開發(fā)實踐之ndk編譯命令簡單示例

    這篇文章主要給大家介紹了在android中ndk編譯命令使用的相關(guān)資料,文中詳細(xì)介紹了ndk-build命令行參數(shù),并通過簡單的示例代碼給大家介紹了如何編寫 .c 文件,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • Android使用MobSDK短信驗證

    Android使用MobSDK短信驗證

    這篇文章主要為大家詳細(xì)介紹了Android使用MobSDK短信驗證,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android中絕對音量和相對音量設(shè)置

    Android中絕對音量和相對音量設(shè)置

    大家好,本篇文章主要講的是Android中絕對音量和相對音量設(shè)置,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Android view自定義帶文字帶進度的控件

    Android view自定義帶文字帶進度的控件

    這篇文章主要為大家詳細(xì)介紹了Android view自定義帶文字帶進度的控件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Android圖像切換器imageSwitcher的實例應(yīng)用

    Android圖像切換器imageSwitcher的實例應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了Android圖像切換器imageSwitcher的實例應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Android CrashHandler編寫自己的異常捕獲的方法

    Android CrashHandler編寫自己的異常捕獲的方法

    這篇文章主要介紹了Android CrashHandler編寫自己的異常捕獲的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Android DatePicker和DatePickerDialog基本用法示例

    Android DatePicker和DatePickerDialog基本用法示例

    這篇文章主要介紹了Android DatePicker和DatePickerDialog基本用法,實例分析了DatePicker和DatePickerDialog控件針對手機時間設(shè)置的相關(guān)技巧,需要的朋友可以參考下
    2016-06-06

最新評論