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

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

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


Screenshot-2Screenshot-

 

 

 

 

 

 

 

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

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

當然,使用這種“佔領並強滯留”的方式,首先要保證自己的應用“可用、好用”,或者是工作/企業應用的“必須使用”,否則被人討厭的流氓類應用去佔領就適得其反,讓人更快速下載了。

技術實現

Android在新版的通知提醒服務中,增加了Ongoing選項,Notification.FLAG_ONGOING_EVENT,實現“在運行”的通知提醒,也就是可以常駐在通知欄,實現“永遠的通知”,並在通知上附加其它操作。

關於“其它操作”,作爲信息系統常用的按鈕、文本、圖片、列表等都可以添加展示。使用RemoteViews機制在“0號首頁”區域實現自定義的視圖。

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

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

一個參考樣例,代碼:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章