1. 程式人生 > >關於Android O不能正常推送通知問題

關於Android O不能正常推送通知問題

        在看第一行程式碼自學Android時(雖然三天打魚兩天晒網,進度慢的嚇人)看到NotificationCompat.Builder()方法被劃了橫線,剛開始時看了一下Android Studio給的警告,沒有找到替代的方法,但是可以正常推送,就沒有在意。後來因為手機問題,換了小米6,剛好升級到8.0,發現無法推送通知。百度後發現,Android O做很多修改,如懸浮窗、通知、廣播、WiFi、藍芽等。Android O推送通知需要設定Notification Channel。程式碼如下:

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            String id = "my_channel_01";
            NotificationChannel mChannel = null;//建立Notification Channel物件
            //如果版本號為8.0以上,定義Notification Channel
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                mChannel = new NotificationChannel(id,"my_channel", NotificationManager.IMPORTANCE_DEFAULT);//設定唯一的渠道通知Id
                mChannel.enableLights(true);//開啟燈光
                mChannel.setLightColor(Color.RED);
                mChannel.enableVibration(true);//開啟震動
                mChannel.setVibrationPattern(new long[]{0,1000,0,1000});//8.0以下版本的效果一樣,都是震動
                manager.createNotificationChannel(mChannel);//在NotificationManager中註冊渠道通知物件
            }
            //定義通知,都可適配
            NotificationCompat.Builder notification=new NotificationCompat.Builder(this,"1");
            notification.setContentTitle("你有一條新的聯絡人資訊")
                    .setContentText("快來更新聯絡人資訊!!!!!!!")
                    .setWhen(System.currentTimeMillis())
                    .setSmallIcon(R.drawable.ic_launcher_foreground)
                    .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.notification1)))
                    .setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg")))
                    //.setVibrate(new long[]{0,1000,0,1000})
                    //.setLights(Color.RED,1000,1000)//震動和燈光一樣都需要Notification Channel開啟燈光和震動,才能有效果
                    .setPriority(NotificationCompat.PRIORITY_MAX)//懸浮通知
                    .setContentIntent(pi)
                    .setChannelId(id)//設定通知Id
                    .setAutoCancel(true);
            manager.notify(1,notification.build());

百度時看的如下連結:https://www.cnblogs.com/qyun/p/6715195.html

震動和圖片什麼的都正常,不知道為什麼我的呼吸燈不亮。如果有可以亮的,麻煩告訴下解決辦法。我實在是太菜了!!!


相關推薦

關於Android O不能正常通知問題

        在看第一行程式碼自學Android時(雖然三天打魚兩天晒網,進度慢的嚇人)看到NotificationCompat.Builder()方法被劃了橫線,剛開始時看了一下Android Studio給的警告,沒有找到替代的方法,但是可以正常推送,就沒有在意。後來因

Android實現本地通知的解決方案

                廢話不多說,直接進入正題. 一、自己寫程式碼建立通知,可以參考以下程式碼:   NotificationManager nm=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);   Stri

Android應用程序中實現通知

xamarin android 幾乎每一個應用程序的一個重要特性是支持推送通知的能力。使用推送通知,您可以更新用戶,而不需要應用程序在任何時候運行或輪詢服務器, 避免潛在的電池電量不足。 隨著火力點雲信息的介紹(FCM),谷歌使得在Android應用程序中實現推送通知變

Android安卓狀態列訊息通知(Notification)

我從不猜測,猜測是一個很壞的習慣——會影響正常的邏輯推理能力。              ——阿瑟·柯南·道爾 《福爾摩斯探案集》 近日,在做安卓專案開發的時候涉及到狀態列通知的需求,查了資料,總結一個簡

Android Firebase接入(五)-- Firebase通知(Cloud Message)

Firebase Cloud Message(FCM)可以幫助Android App實現訊息推送功能,並且可以在推送通知中攜帶引數,當用戶點選推送通知時,推送中攜帶的引數資訊將傳遞到主Activity的getIntent中。一、配置Android應用並下載google-ser

Android通知那些你不知道的細節

場景一:你的App接收到了多條推送訊息,但是要實現點選每條通知做不同的事情(如:傳過去不同的值 ),問題是怎麼判斷點選的是哪一條通知訊息呢? 解答: //第二個引數用來表示不同notification,一定要設定成變數,否則多條訊息只能實現相同操作。        

iOS開發 - ANPs通知 標簽: 通知ANPs遠程、本地

control con 垃圾 pre 條件 %20 常用 建立連接 mod iOS開發 - ANPs推送通知 標簽: 推送通知ANPs遠程推送本地推送 2015-05-03 14:12 3510人閱讀 評論(0) 收藏 舉報 本文章已收錄於: iOS知識庫

apollo實現c#與android消息(三)

class net names oid urn 服務 mbo target parse 3 實現c#消息推送服務 c#實現消息推送必須引入M2Mqtt.dll,源碼 a 連接apache apollo代理服務器的代碼。需要引入using uPLibrar

背水一戰 Windows 10 (121) - 後臺任務: 通知

target 聲明 測試 show null result href -c Coding [源碼下載] 背水一戰 Windows 10 (121) - 後臺任務: 推送通知 作者:webabcd介紹背水一戰 Windows 10 之 後臺任務 推送通知

從構建分布式秒殺系統聊聊WebSocket通知

shadow [1] 小夥伴 ref 相關 消費 png 重試 們的 前言 秒殺架構到後期,我們采用了消息隊列的形式實現搶購邏輯,那麽之前拋出過這樣一個問題:消息隊列異步處理完每個用戶請求後,如何通知給相應用戶秒殺成功? 場景映射 首先,我們舉一個生活中比較常見的例子:我

Android友盟

tegra mod agent pro message gpu 消息 alert 返回 當前版本號:v3.0.5 1.下載SDK解壓並導入(import module,compile project(‘:PushSDK‘)),裏面有demo,用demo的包名去官網添加一個應

Android 端外到底有多煩?

最好的 idt 通知提醒 連接狀態 意思 content 否則 ror 不能 Android 端外推送到底有多煩? 說Android端外推送比較煩,實際有兩層意思:首先是說實現上比較麻煩,至今業界也沒有找到一種完美的解決方案,Android程序員通常需要同時集成多家推送

android 百度的整合

  /*  * Push訊息處理receiver。請編寫您需要的回撥函式, 一般來說: onBind是必須的,用來處理startWork返回值;  *onMessage用來接收透傳訊息; onSetTags、onDelTags、onListTags是tag相關操作的

Android app 移動遇到的問題(多問題集合)

       關於移動推送這塊,我主要是應用了極光推送跟阿里的移動推送,阿里這塊遇到的問題就是配置檔案這塊, 問題1:碰到一個資源重複的問題,是出現在應用級的build.gradle上面的資源包引用重複, 問題2:遇到的難點就是:無法例項化接收器

從構建分散式秒殺系統聊聊WebSocket通知

前言 秒殺架構到後期,我們採用了訊息佇列的形式實現搶購邏輯,那麼之前丟擲過這樣一個問題:訊息佇列非同步處理完每個使用者請求後,如何通知給相應使用者秒殺成功? 場景對映 首先,我們舉一個生活中比較常見的例子:我們去銀行辦理業務,一般會選擇相關業務列印一個排號紙,然後就

IOS通知開發流程

最近開發IOS的推送通知,現把流程及遇到的問題整理一下: 一、證書的準備工作 1.在開發電腦MAC上申請證書 開啟鑰匙串訪問 選擇從證書頒發機構請求證書 這裡的郵箱賬號寫你自己的,常用名稱可以隨便寫 選擇儲存到磁碟 這裡最好新建一個資料夾 用來專門儲存這些檔案

jfinal整合websocket 伺服器向瀏覽器通知

最近,需要公司需要寫一個app下單之後,後臺要接收到提醒的功能,需要伺服器向瀏覽器推送下單提醒通知。查了好多資料,中間也是遇到了一些坑,所以在這裡記錄一下。第一次寫部落格,有不對的地方,希望大牛指正。 一、要做的準備工作: 1.將專案放在tomcat裡面 2.下載一個w

使用者在小程式操作後通過公眾號(服務號)通知

一、前言 使用者在小程式進行了一個操作,操作結果不是立馬返回的可能需要隔一段時間才能有處理結果,那麼這時候需要讓使用者知道操作的結果,應該怎麼辦呢?總的來說有兩種解決方案。一種是通過小程式模板訊息,推送服務通知。這種方式只能支援使用者提交表單或者進行了支付這兩種場景,支援的

Android MQTT 訊息demo

··· 不會轉換gif格式,截圖給你們看看吧,如果有好的免費的轉換工具可以留言推薦給我,在此衷心感謝 裡邊寫了好多註釋,應該都能看懂,這個在ssm專案中也可以使用但需要定製,去除android化的東西 ··· 1.介面 2.連線Mqtt 3.傳送和接收訊息(上邊

Android 關於極光時測試和正式的問題

極光推送並沒有提供區分測試和正式的欄位,如果想區分測試和正式的環境,可以重新註冊一個,在重新註冊時,會讓你重新填寫包名, release: com.jpush.test debug: com.jpush.test.debug 然後我們配置gradle,