Android8 自定義廣播接收不到的問題
1. 問題的前提:本人維護的一個應用是通過按鍵傳送一個自定義廣播,然後拉起服務。原來專案開發是在Android6,將該應用安裝到Android7系統上面可正常使用,但是安裝到Android8上面,死活收不到廣播。通過百度參考了兩篇文章(文章最後加備註),做了以下總結:
2.原因:Android8在靜態廣播的使用上做了一些限制具體可檢視:https://developer.android.google.cn/about/versions/oreo/android-8.0.html
3. 解決辦法:
(1)使用動態廣播代替靜態廣播,具體可參考部落格1。
(2)保留原來的靜態廣播,但是加入Component引數,具體可參考部落格2。
我使用的是解決方式2(寫了demo測試了一下),在必須要使用自定義靜態廣播的時候可採用這個方法,傳送廣播時加入ComponentName,引數1是自定義廣播的包名,引數2是自定義廣播的路徑:
- Intent it = new Intent("com.hisense.test.broadcast");
- it.setComponent(new ComponentName("com.example.broadcasttest",
- "com.example.broadcasttest.MyBroadcast"));
- sendBroadcast(it);
相關文章
- 廣播接收器——接收系統廣播
- springboot使用RabbitMQ的fanout廣播模式消費者死活接收不到訊息Spring BootMQ模式
- spark:自定義分割槽,自定義排序,spark與jdbc,廣播變數等Spark排序JDBC變數
- VC UDP接收 傳送 廣播UDP
- Android-Broadcast Receiver(廣播接收器)AndroidAST
- 自定義View的硬體加速問題View
- 自定義view————Banner輪播View
- flume自定義攔截器遇到的問題
- Laravel 自定義驗證規則的問題Laravel
- 自定義一個可以接收空格的字串的函式字串函式
- uniapp自定義卡片輪播圖APP
- 【筆記】nrf52832廣播使用--廠商自定義資料應用筆記
- 安卓應用安全指南4.2.3建立/使用廣播接收器高階話題安卓
- carousel 輪播自定義進度條
- Laravel 使用 Easywechat 書寫自定義模板訊息丶廣播訊息頻道Laravel
- ROS 機器人技術 - 廣播與接收 TF 座標ROS機器人
- 自定義RedisTemplate,解決Redis亂碼問題Redis
- SwitchResX自定義解析度時遇到的問題彙總
- tensorflow2.0 自定義類模組列印問題
- 小程式輪播圖自定義指示器
- UDP介紹及UDP傳送端和接收端廣播程式碼UDP
- 碰過嗎?Laravel 廣播,前端接收幾次後就 CPU 100%Laravel前端
- Hanlp配置自定義詞典遇到的問題與解決方法HanLP
- GKCycleScrollView - 一個輕量級的自定義輪播圖元件View元件
- spring boot啟動掃描不到自定義註解Spring Boot
- Android8,reactnative中webView傳的token,vue中獲取不到是怎麼回事?AndroidReactWebViewVue
- WinForm 載入自定義控制元件閃爍問題ORM控制元件
- 純 CSS 解決自定義 CheckBox 背景顏色問題CSS
- THINKPHP 3.23beta版本 自定義行為有問題。PHP
- springboot jap自定義原生sql 接收SELECT count(*) 的返回long型別結果Spring BootSQL型別
- netty系列之:自定義編碼和解碼器要注意的問題Netty
- 【Flutter 專題】124 日常問題小結 (三) 自定義 Dialog 二三事Flutter
- 解決Redis叢集條件下鍵空間通知伺服器接收不到訊息的問題Redis伺服器
- 解決spring security自定義filter重複執行問題SpringFilter
- iOS8 自定義UITabBar (使用popToViewController導致的UITabBarButton重疊的問題)iOSUItabBarViewController
- 自定義部落格園主題
- 廣播模式模式
- vue單頁面應用在iOS版微信下自定義分享的問題VueiOS