0號首頁,移動應用快捷門戶

0號首頁,移動應用快捷門戶微信

咱們已有的應用,都將Android通知欄做爲「傳統的通知」用途,好比短信,微信,QQ都在這樣使用。不過,一樣的區域,也有創新的使用方式,好比最先的音樂播放控制,如今的360智鍵,百度搜索都開始佔領通知欄,做爲其應用的快捷入口,見附後圖。app


Screenshot-2Screenshot-

 

 

 

 

 

 

 

從移動應用的成功程度評價,「佔領手機的前三屏」,到如今安裝了大量應用App後,其實除了經常使用的幾個,其他都在沉睡冰藏,很難主動想起去「找到-點擊」的使用過程。工具

不過,Android3.0之後,有了Ongoing(運行中),能夠從技術角度佔領用戶手機的最快捷入口,實現「0號首頁」。做爲娛樂工具型應用,SoLoMo的簽到(Checkin),LBS類查詢,我的記帳,還能夠提供「富功能方式」的通知提醒和通知提醒的後向操做,一些快捷工具操做。做爲企業應用,工單提醒和快捷操做,考勤簽到等。佈局

固然,使用這種「佔領並強滯留」的方式,首先要保證本身的應用「可用、好用」,或者是工做/企業應用的「必須使用」,不然被人討厭的流氓類應用去佔領就拔苗助長,讓人更快速下載了。ui

技術實現

Android在新版的通知提醒服務中,增長了Ongoing選項,Notification.FLAG_ONGOING_EVENT,實現「在運行」的通知提醒,也就是能夠常駐在通知欄,實現「永遠的通知」,並在通知上附加其它操做。this

關於「其它操做」,做爲信息系統經常使用的按鈕、文本、圖片、列表等均可以添加展現。使用RemoteViews機制在「0號首頁」區域實現自定義的視圖。設計

Notification的自定義佈局是RemoteViews,在自定義視圖佈局文件中,僅支持FrameLayout、LinearLayout、RelativeLayout三種佈局控件和AnalogClock、Chronometer、Button、ImageButton、ImageView、ProgressBar、TextView、ViewFlipper、ListView、GridView、StackView和AdapterViewFlipper這些顯示控件,不支持這些類的子類或Android提供的其餘控件。blog

同時,Notification能夠組合使用聲音、三色燈、振動和屏幕提醒,實現更好的用戶體驗。圖片

一個參考樣例,代碼:ip

public void addOngoingNotify(){NotificationCompat.Builder mBuilder = new Builder(this);RemoteViews mRemoteViews = new RemoteViews(getPackageName(), R.layout.view_notify);

 

mRemoteViews.setImageViewResource(R.id.notify_ongoing_icon_1, R.drawable.notify_ongoing_icon_2);

mRemoteViews.setTextViewText(R.id.txt_label, 「遠圖將來」);

mRemoteViews.setViewVisibility(R.id._notify_button, View.VISIBLE);

mRemoteViews.setImageViewResource(R.id.btn_notify_1, R.drawable.btn_notify_2);

//按鈕動做處理

Intent buttonIntent = new Intent(ACTION_BUTTON);

buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_PREV_ID);

PendingIntent intent_prev = PendingIntent.getBroadcast(this, 1, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);

mRemoteViews.setOnClickPendingIntent(R.id.btn_notify_1, intent_prev);

 

mBuilder.setContent(mRemoteViews)

.setContentIntent(getDefalutIntent(Notification.FLAG_ONGOING_EVENT))

.setSmallIcon(R.drawable.notify_ongoing_icon_2)

.setPriority(Notification.PRIORITY_DEFAULT)

.setWhen(System.currentTimeMillis())

.setTicker(「常駐通知@蓄豐實驗艙」)

.setOngoing(true);

Notification notify = mBuilder.build();

notify.flags = Notification.FLAG_ONGOING_EVENT;

mNotificationManager.notify(notifyId, notify);

}

 

設置振動:setVibrate(long[] pattern)

設置三色燈:setLights(intledARGB ,intledOnMS ,intledOffMS )

設置聲音:setSound(Uri sound)

 

技術支持是基礎的,應用場景是充滿無限想象力的。從現有的技術解決方案,創新和設計出新的產品或應用方式,是咱們最幸福的事。

本文地址,http://blog.xufun.cn/?p=660

相關文章
相關標籤/搜索