• 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

  • 相关阅读:
    二逼平衡树(树套树)
    NOI2010 超级钢琴
    SDOI2011 消耗战
    HNOI2013 游走
    [SDOI2010]外星千足虫
    [UVA 11374]Airport Express
    [Luogu P1354]房间最短路问题
    [Luogu P2296][NOIP 2014]寻找道路
    高精度算法
    洛谷红名+AC150祭
  • 原文地址:https://www.cnblogs.com/xufun/p/3959871.html
Copyright © 2020-2023  润新知