想做一个锁屏的软件。锁屏后可以显示闹钟信息。

一开始的思路是通过android content provider获取

  1. mActivityObject.getContentResolver().query(
  2. Uri.parse("content://com.android.deskclock/alarm")
  3. , ALARM_QUERY_COLUMNS
  4. , null
  5. , null
  6. , DEFAULT_SORT_ORDER
  7. );

发现这种方式局限性太多了。很多手机上包名都改掉了。。。

还会有可能出现如下错误:

  1. 10-29 12:01:05.597: W/System.err(30638): java.lang.SecurityException: Provider com.android.deskclock/com.android.deskclock.AlarmProvider does not allow granting of Uri permissions (uri content://com.android.deskclock/alarm)
  2. 10-29 12:01:05.597: W/System.err(30638):    at android.os.Parcel.readException(Parcel.java:1425)
  3. 10-29 12:01:05.597: W/System.err(30638):    at android.os.Parcel.readException(Parcel.java:1379)
  4. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ActivityManagerProxy.grantUriPermission(ActivityManagerNative.java:2941)
  5. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ContextImpl.grantUriPermission(ContextImpl.java:1382)
  6. 10-29 12:01:05.597: W/System.err(30638):    at android.content.ContextWrapper.grantUriPermission(ContextWrapper.java:453)
  7. 10-29 12:01:05.597: W/System.err(30638):    at com.ry.ui.phone.RYUIPlatform.AlarmTime(RYUIPlatform.java:285)
  8. 10-29 12:01:05.597: W/System.err(30638):    at com.ry.ui.sunlock.sunLock.onResume(sunLock.java:319)
  9. 10-29 12:01:05.597: W/System.err(30638):    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1184)
  10. 10-29 12:01:05.597: W/System.err(30638):    at android.app.Activity.performResume(Activity.java:5082)
  11. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2816)
  12. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2854)
  13. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2329)
  14. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ActivityThread.access$600(ActivityThread.java:139)
  15. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1295)
  16. 10-29 12:01:05.597: W/System.err(30638):    at android.os.Handler.dispatchMessage(Handler.java:99)
  17. 10-29 12:01:05.597: W/System.err(30638):    at android.os.Looper.loop(Looper.java:137)
  18. 10-29 12:01:05.597: W/System.err(30638):    at android.app.ActivityThread.main(ActivityThread.java:5117)
  19. 10-29 12:01:05.597: W/System.err(30638):    at java.lang.reflect.Method.invokeNative(Native Method)
  20. 10-29 12:01:05.597: W/System.err(30638):    at java.lang.reflect.Method.invoke(Method.java:511)
  21. 10-29 12:01:05.597: W/System.err(30638):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
  22. 10-29 12:01:05.597: W/System.err(30638):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
  23. 10-29 12:01:05.597: W/System.err(30638):    at dalvik.system.NativeStart.main(Native Method)
  24. 10-29 12:01:05.597: W/System.err(30638): java.lang.SecurityException: Provider com.android.deskclock/com.android.deskclock.TimersProvider does not allow granting of Uri permissions (uri content://com.android.deskclock.timers)

google 了一翻。愣是米有找到解决办法

心灰意冷之季。。

发现用如下方法可以直接取到下一个闹钟的时间

  1. String str = Settings.System.getString(mActivityObject.getContentResolver(),
  2. Settings.System.NEXT_ALARM_FORMATTED);

赶紧一试果然。。

Android 获取闹钟引发的血案的更多相关文章

  1. Android ObjectOutputStream Serializable引发的血案

    遇到一个问题 安装后第二次进app,闪退 重现步骤 [前置条件] 打包分支:dev_7.13 手机:vivo NEX 8.1.0 [步骤] 安装三星app----同意用户协议进入书城---连续点击ba ...

  2. 一个无锁消息队列引发的血案(六)——RingQueue(中) 休眠的艺术 [续]

    目录 (一)起因 (二)混合自旋锁 (三)q3.h 与 RingBuffer (四)RingQueue(上) 自旋锁 (五)RingQueue(中) 休眠的艺术 (六)RingQueue(中) 休眠的 ...

  3. 一个无锁消息队列引发的血案(五)——RingQueue(中) 休眠的艺术

    目录 (一)起因 (二)混合自旋锁 (三)q3.h 与 RingBuffer (四)RingQueue(上) 自旋锁 (五)RingQueue(中) 休眠的艺术 (六)RingQueue(中) 休眠的 ...

  4. [WCF]缺少一行代码引发的血案

    这是今天作项目支持的发现的一个关于WCF的问题,虽然最终我只是添加了一行代码就解决了这个问题,但是整个纠错过程是痛苦的,甚至最终发现这个问题都具有偶然性.具体来说,这是一个关于如何自动为服务接口(契约 ...

  5. dubbox微服务实例及引发的“血案”

    Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. 主要核心部件: Remoting: 网络通信框架 ...

  6. Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

  7. Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

  8. Android 实现闹钟功能

      原文地址:Android 实现闹钟功能作者:Android_Learners 一.手机闹钟主要用到了AlarmManager类,AlarmManager类提供了访问系统定时服务的途径,开发人员可以 ...

  9. 一个字母引发的血案 java.io.File中mkdir()和mkdirs()

    一个字母引发的血案 明天开始放年假了,临放假前有个爬虫的任务,其中需要把网络图片保存到本地,很简单,马上写完了代码: //省略部分代码... Long fileId= (Long) data.get( ...

随机推荐

  1. SpringMVC对日期类型的转换@ResponseBody返回的DateTime是long类型

    目前,多数web开发这都在使用Spring的框架.但是这个框架有个 @ResponseBody 注解返回json时,日期格式默认显示为时间戳. 而我们页面展示的时候一般都是以下格式: yyyy-MM- ...

  2. 【转发】PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库

    转发自:http://blog.csdn.net/lccee/article/details/54289076 课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全 ...

  3. Windows下MySQL 5.7安装记录

    软件下载 环境:Windows 7 旗舰版 64位 MySQL版本:mysql-5.7.3.0-winx64 MySQL下载地址:http://dev.mysql.com/downloads/inst ...

  4. C#DES加密,JavaDES解密,另转C#和Java实现Des完整代码

    C#DES加密,JavaDES解密,另转C#和Java实现Des完整代码 转载 2014年06月17日 17:36:09 标签: DES / C#DES / JavaDES / C#和Java交叉DE ...

  5. excel快速访问工具栏和自定义选项卡

    自定义选项卡: excel命令选项--自定义功能区--

  6. LR函数基础(一)(二)

    LR函数基础(一) 函数用到:web_reg_find(). lr_log_message(). lr_eval_string().strcmp().atoi() Action(){    web_r ...

  7. pycharm安装提示 module 'pip' has no attribute 'main'

    问题描述: 环境: windows10 pycharm2016.2.3  //在最先版本的pycharm就没问题,可能还需要升级pip版本 python3.6 pip安装模块,提示 Attribute ...

  8. Arduino通过I2C(PCF8574T)驱动1602LCD

    Arduino中使用I2C通信可直接调用Wire.h库, 这个库允许Arduino链接其他I2C设备, 链接线有两条, 分别是SDA(数据行)和SCI(时钟线). 各型号Arduino的I2C对应引脚 ...

  9. Android 仿知乎创意广告

    代码地址如下:http://www.demodashi.com/demo/14904.html 一.概述 貌似前段时间刷知乎看到的一种非常有特色的广告展现方式,即在列表页,某一个Item显示背后部分广 ...

  10. 推断Windows版本号新方法

    曾经在代码中推断用户的Windows操作系统版本号都是通过GetVersion或GetVersionEx获取版本号号,然后比較. 今天偶然发如今新的Visual Studio提供了新的函数来推断系统版 ...