如何使用UserMetric发布消息到Welcome Screen

我们可以通过UserMetric的API发布消息到我们手机的欢迎页面(手机的锁屏界面)。在锁屏界面中,我们可以双击中间的圆圈,来循环播放我们手机发布的消息。如下图所示,

我们发布了“Useermetric messages received: 4”个消息。

我们需要使用的模块是:

import UserMetrics 0.1

我们可以使用如下的方法得到它所有的API:

[email protected]:~$ qmlplugindump import UserMetrics 0.1
QQmlComponent: Component is not ready
[email protected]:~$ qmlplugindump  UserMetrics 0.1
import QtQuick.tooling 1.1

// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
// 'qmlplugindump UserMetrics 0.1'

Module {
    Component {
        name: "Metric"
        prototype: "QObject"
        exports: ["Metric 0.1"]
        exportMetaObjectRevisions: [0]
        Property { name: "name"; type: "string" }
        Property { name: "format"; type: "string" }
        Property { name: "emptyFormat"; type: "string" }
        Property { name: "domain"; type: "string" }
        Property { name: "minimum"; type: "double" }
        Property { name: "maximum"; type: "double" }
        Method {
            name: "increment"
            Parameter { name: "amount"; type: "double" }
        }
        Method { name: "increment" }
        Method {
            name: "update"
            Parameter { name: "value"; type: "double" }
        }
    }
}

我们的应用非常简单:

Main.qml

import QtQuick 2.0
import Ubuntu.Components 1.1
import UserMetrics 0.1

/*!
    \brief MainView with a Label and Button elements.
*/

MainView {
    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"

    // Note! applicationName needs to match the "name" field of the click manifest
    applicationName: "usermetrics.liu-xiao-guo"

    /*
     This property enables the application to change orientation
     when the device is rotated. The default is false.
    */
    //automaticOrientation: true

    // Removes the old toolbar and enables new features of the new header.
    useDeprecatedToolbar: false

    width: units.gu(60)
    height: units.gu(85)

    Page {
        title: i18n.tr("usermetrics")

        Metric {
            id: incomingMessagesMetric
            name: "usermetric"
            format: i18n.tr("Usermetric messages received today: %1")
            emptyFormat: i18n.tr("No Usermetric messages received today.")
            domain: applicationName
        }

        Column {
            anchors.centerIn: parent
            spacing: units.gu(2)

            Button {
                text: i18n.tr("Increase")

                onClicked: {
                    console.log("Going to increase the metric!");
                    incomingMessagesMetric.increment()
                }
            }

            Button {
                text: i18n.tr("Decrease")

                onClicked: {
                    console.log("Going to increase the metric bye 2!");
                    incomingMessagesMetric.increment(-2)
                }
            }

            Button {
                text: i18n.tr("Decrease")

                onClicked: {
                    console.log("Going to update to 3 to the metric!");
                    incomingMessagesMetric.update(3)
                }
            }

        }
    }
}

为了使用UserMetric,我们必须在我们的应用中使用usermetrics security policy:

usermetrics.apparmor

{
    "policy_groups": [
        "networking",
        "webview",
        "usermetrics"
    ],
    "policy_version": 1.3
}<img src="http://img.blog.csdn.net/20150828164655239?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="200" height="300" alt="" />

运行我们的应用:

每当我们点击increase按钮后,我们的欢迎界面数据将增加一个:

整个应用的源码在:git clone https://gitcafe.com/ubuntu/usermetrics.git

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 02:12:03

如何使用UserMetric发布消息到Welcome Screen的相关文章

实战屏幕SCREEN总结

今天学习完了所有的基本屏幕设计案例,接下来分享下自己的学习总结. 1.屏幕设计Tcode:SE51,设计屏幕之前需要通过Tcode:SE38建立一个主程序. 2.在主程序下建立屏幕,屏幕号可以自己定义,通过格式按钮进入屏幕设计界面. 3.逻辑流设计:PBO(PROCESS BEFORE OUTPUT)和PAI(PROCESS AFTER INPUT)两大块. 4.程序中的功能码基本是固定的(尽量不要更改) DATA : save_ok TYPE sy-ucomm, ok_code TYPE sy

ABAP实战屏幕SCREEN设计(一)

屏幕(SCREEN)是ABAP设计最重要的工作之一,SAP的单据.主数据维护等业务功能都使用屏幕,一个程序可以包含多个屏幕. 本文主要介绍: (1)第一个"HELLO WORLD" Screen程序 (2)工具条和菜单设计 (3)屏幕对象 (4)数据字典关联字段 (5)逻辑流 (6)下拉框设计 (7)修改屏幕 (8)子窗口(Subscreen) (9)表条目控制 (10)定制控制,上载图片和在屏幕上显示图片实例 (11)文本编辑器 (12)列表和屏幕相互调用 1.第一个"HE

screen的用法

在工作中,经常会遇到执行任务过程比较长,此时可以把这个任务通过&的方式放到后台执行,但你当前的终端是不能中断的,如果终端中断则这种方式的后台任务也会中断. 另一种方式就是screen的方式,将任务放到虚拟终端中,你当前的终端可以任意中断,重新连接上之后执行相应的命令,就可以重新连接上screen的终端. 安装: yum install screen 常用参数: -S:创建一个终端,例:screen -S ping-->创建一个名字为ping的终端 ctrl+a+d:进入虚拟终端后,不中断退出

Deep Learning Enables You to Hide Screen when Your Boss is Approaching

https://github.com/Hironsan/BossSensor/ 背景介绍 学生时代,老师站在窗外的阴影挥之不去.大家在玩手机,看漫画,看小说的时候,总是会找同桌帮忙看着班主任有没有来. 一转眼,曾经的翩翩少年毕业了,新的烦恼来了,在你刷知乎,看视频,玩手机的时候,老板来了! 不用担心,不用着急,基于最新的人脸识别+手机推送做出的BossComing.老板站起来的时候,BossComing会通过人脸识别发现老板已经站起来,然后通过手机推送发送通知“BossComing”,并且震动告

16.使用zabbix api创建screen

zabbix的screen功能可以把graph聚合起来,统一进行展示, 我们的需求是把同一个主机组的同一个item聚合起来,比如一个screen显示同一个组的所有主机的内存使用率,达到类似ganglia的效果, 由于服务器较多,所以我们调用zabbix api来进行创建. 参考地址如下:谢谢各位大牛 https://www.zabbix.org/wiki/Python_script_to_create_Screen_from_all_Items/Graphs_of_a_host http://c

screen的使用和小故障

小话题: 如果在我们编译软件的时候,终端实然断了怎么办,按理论来说,在此终端下的程序都会结束.编译了老半天,白忙活了.那么可以用screen程序. screen 模拟多个虚拟窗口,并且screen模拟的终端断了以后,screen的终端不会退出,程序继续.screen 打开新的screen虚拟界面也可以隐藏打开的screen终端,返回原来的终端,当然是原终端没有断线的情况下. Ctrl+a,再按一下ctrl+d.或者直接ctrl+a,d. 按一下a,再按一下d. 想要返回screen终端,先查看一

devstack screen 详解

n my previous blog i discussed how to install devstack based openstack. Now if I need to restart individual services of openstack, in a typical openstack install I would restart the service of each component, example nova-network service, horizon etc

screen命令的最常见的使用方法

这几天用到了screen命令来在远程主机上后台执行一些命令,主要用到: screen -S yourname -> 新建一个叫yourname的session screen -ls -> 列出当前所有的session screen -r yourname -> 回到yourname这个session C-a d ->快捷键, detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen

alias别名、时间、screen、echo等——Linux基本命令(3)

1.alias别名 (1)查看.设置别名 Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,这样一来,以后只需输入一个简短的别名就可以达到同样的作用. alias显看当前已定义的别名 使用aliasaliname='command [-x] [....]' 可以定义别名(中括号的意思是可加可不加). 值得注意的是,不止别名=命令,还可以别名=命令+选项 例如,我们设置一个编辑网卡的配置文件别名,然后只需要输入别名,就可以进入了. (2)