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);
相關文章
- 廣播接收器——接收系統廣播
- android: 傳送自定義廣播Android
- VC UDP接收 傳送 廣播UDP
- android: 接收系統廣播Android
- spark:自定義分割槽,自定義排序,spark與jdbc,廣播變數等Spark排序JDBC變數
- springboot使用RabbitMQ的fanout廣播模式消費者死活接收不到訊息Spring BootMQ模式
- Udp廣播的傳送與接收(C#+UdpClient) 上篇UDPC#client
- Udp廣播的傳送和接收(iOS + AsyncUdpSocket)下篇UDPiOS
- SOCKET實現廣播(BoardCast)的傳送和接收 (轉)AST
- ffmpeg無法接收組播流問題處理
- Android-Broadcast Receiver(廣播接收器)AndroidAST
- 安卓開發之廣播接收器BroadcastReceiver安卓AST
- 安卓應用安全指南4.2.3建立/使用廣播接收器高階話題安卓
- 【安卓筆記】作為內部類的廣播接收者安卓筆記
- 不同的activity使用bundle物件傳值給廣播接收器物件
- 自定義view————Banner輪播View
- 【筆記】nrf52832廣播使用--廠商自定義資料應用筆記
- ROS 機器人技術 - 廣播與接收 TF 座標ROS機器人
- 廣播接收者 Receiver四大元件之一元件
- struts 自定義validate 問題
- 自定義View的硬體加速問題View
- 自定義一個可以接收空格的字串的函式字串函式
- Laravel 使用 Easywechat 書寫自定義模板訊息丶廣播訊息頻道Laravel
- Laravel 自定義驗證規則的問題Laravel
- flume自定義攔截器遇到的問題
- 在自定義View時碰到的奇怪問題View
- iOS 自定義字型出問題啦!iOS自定義字型
- 自定義標籤出現問題
- carousel 輪播自定義進度條
- uniapp自定義卡片輪播圖APP
- UDP介紹及UDP傳送端和接收端廣播程式碼UDP
- 組播和廣播的區別
- 單播、多播(組播)和廣播的區別
- 碰過嗎?Laravel 廣播,前端接收幾次後就 CPU 100%Laravel前端
- Android 自定義一個輪播圖Android
- 自定義圖片輪播控制元件控制元件
- 廣播模式模式
- Android開機廣播和關機廣播Android