最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

安卓14前端服務foregroundService權限問題解決辦法

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

發(fā)現問題

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

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

前端服務foregroundService還需要添加

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

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

經查資料發(fā)現:

Android 14(API 34)對前臺服務的權限體系進行了深度重構:

1.細分權限體系
除基礎權限 FOREGROUND_SERVICE 外,必須根據服務類型聲明對應的細分權限:

除基礎權限 FOREGROUND_SERVICE 外,必須根據服務類型聲明對應的細分權限:

  • 數據同步服務:FOREGROUND_SERVICE_DATA_SYNC
  • 位置服務:FOREGROUND_SERVICE_LOCATION
  • 媒體播放服務:FOREGROUND_SERVICE_MEDIA_PLAYBACK
  • 電話服務:FOREGROUND_SERVICE_PHONE_CALL

2.服務類型強校驗

系統會嚴格驗證 android:foregroundServiceType 屬性與權限的匹配性,不匹配將拋出 SecurityException

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

3.通知權限前置要求

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

解決方案

在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代碼中前端服務實現

  @Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG, "onCreate:");
        Toast.makeText(this, "服務已經啟動", 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("這是標題")
                .setContentText("這是內容")
                .build();
        startForeground(1, notification);
    }

運行如果發(fā)現通知欄中不存在,還需要進入設置->應用中打開app的通知權限

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

adb shell dumpsys activity services | grep "ForegroundService"

總結 

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

相關文章

  • 淺談Android硬件加速原理與實現簡介

    淺談Android硬件加速原理與實現簡介

    這篇文章主要介紹了淺談Android硬件加速原理與實現簡介,本文嘗試從底層硬件原理,一直到上層代碼實現,對硬件加速技術進行簡單介紹,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android實現音樂播放器歌詞顯示效果

    Android實現音樂播放器歌詞顯示效果

    這篇文章主要為大家詳細介紹了Android實現音樂播放器歌詞顯示效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Android自定義SeekBar實現視頻播放進度條

    Android自定義SeekBar實現視頻播放進度條

    這篇文章主要為大家詳細介紹了Android自定義SeekBar實現視頻播放進度條的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android Jetpack系列之App Startup使用詳解

    Android Jetpack系列之App Startup使用詳解

    這篇文章主要為大家介紹了Android Jetpack系列之App Startup使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Android調用應用安裝界面方法

    Android調用應用安裝界面方法

    大家好,本篇文章主要講的是Android調用應用安裝界面方法,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Android筆記之:App應用之啟動界面SplashActivity的使用

    Android筆記之:App應用之啟動界面SplashActivity的使用

    當前比較成熟一點的應用基本上都會在進入應用之顯示一個啟動界面.這個啟動界面或簡單,或復雜,或簡陋,或華麗,用意不同,風格也不同
    2013-04-04
  • 輕松實現Android鎖屏功能

    輕松實現Android鎖屏功能

    這篇文章主要幫助大家輕松實現Android鎖屏功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android動態(tài)添加設置布局與控件的方法

    Android動態(tài)添加設置布局與控件的方法

    這篇文章主要介紹了Android動態(tài)添加設置布局與控件的方法,涉及Android中布局與控件的相關操作技巧,需要的朋友可以參考下
    2016-01-01
  • Android 實現左滑出現刪除選項

    Android 實現左滑出現刪除選項

    滑動刪除的部分主要包含兩個部分, 一個是內容區(qū)域(用于放置正常顯示的view),另一個是操作區(qū)域(用于放置刪除按鈕)。下面通過本文給大家介紹Android 實現左滑出現刪除選項,需要的朋友可以參考下
    2017-06-06
  • kotlin 注解 @Parcelize 使用示例和步驟詳解

    kotlin 注解 @Parcelize 使用示例和步驟詳解

    Parcelable 接口是 Android 中用于在組件之間傳遞對象的一種方式,在 Kotlin 中,@Parcelize 注解用于簡化實現 Android Parcelable 接口的過程,本文給大家分享kotlin 注解 @Parcelize 使用示例,感興趣的朋友一起看看吧
    2024-06-06

最新評論

舟山市| 云浮市| 阿坝县| 南召县| 偃师市| 临西县| 信宜市| 晋州市| 屯昌县| 弋阳县| 外汇| 剑河县| 富平县| 永康市| 响水县| 镇康县| 荃湾区| 清丰县| 临泉县| 玉山县| 澳门| 黔西县| 建湖县| 杭锦旗| 和田市| 宁乡县| 旬阳县| 泰安市| 霞浦县| 扶沟县| 汉川市| 博白县| 淳化县| 鄱阳县| 安庆市| 兴海县| 新疆| 乌兰县| 余姚市| 昌邑市| 普安县|