在android 4.0中获取闹钟信息并更改它

2024-03-29

我正在尝试使用以下代码从内容提供商检索警报信息

final String tag_alarm = "tag_alarm";
Uri uri = Uri.parse("content://com.android.deskclock/alarm")
Cursor c = getContentResolver().query(uri, null, null, null, null);
Log.i(tag_alarm, "no of records are" + c.getCount());
Log.i(tag_alarm, "no of columns are" + c.getColumnCount());
if (c != null) {
    String names[] = c.getColumnNames();
    for (String temp : names) {
        System.out.println(temp);
    }
    if (c.moveToFirst()) {
        do {
            for (int j = 0; j < c.getColumnCount(); j++) {
                Log.i(tag_alarm, c.getColumnName(j);
                        + " which has value " + c.getString(j));
            }
        } while (c.moveToNext());
    }
}

它给了我错误权限拒绝我从查询的好奇答案中复制了此代码获取报警信息 https://stackoverflow.com/questions/13759077/get-alarm-infomation在 Nguyen 的评论中,他指出了一个解决方案“如果我将此代码嵌入到 Android 源代码中并运行图像文件,它可以通过“权限被拒绝”错误并检索警报信息。无论如何,谢谢你的提示:)“如何嵌入代码android源代码和运行图像文件?请解释一下我总是在 Eclipse 中创建一个项目,然后编码并作为运行应用程序运行它。请解释一下这个技巧


在我看来,由于每个制造商都实现了自己的时钟应用程序, 因此,Android 的默认 AlarmClockApp 会根据每个制造商的不同而被替换,这使得如果 Android 操作系统被制造商修改过,您的代码将无法成功运行。 所以我认为我们不能处理这种情况下的所有设备,相反,我们应该由设备制造商处理它。 对于三星设备,它是 ClockPackage 和 androidManifest :

   <provider
        android:name=".alarm.AlarmProvider"
        android:authorities="com.samsung.sec.android.clockpackage"
        android:exported="true"
        android:readPermission="com.sec.android.app.clockpackage.permission.READ_ALARM"
        android:writePermission="com.sec.android.app.clockpackage.permission.WRITE_ALARM" >
    </provider>

因此我们可以通过以下方式读取三星设备中的警报数据:

在清单中添加权限:

<uses-permission android:name="com.sec.android.app.clockpackage.permission.READ_ALARM" />

然后通过以下方式获取 Uri:

Uri uri = Uri.parse("content://com.samsung.sec.android.clockpackage/alarm");

使用 Uri :

    Cursor c = getContentResolver().query(uri, null, null, null, null);
    if (c == null) { // that mean devices is not belong to Samsung manufacturer,
                    // we should use an other uri (don't for get to add permission)
        AlarmLog.w("Can not read cursor");

    }
    AlarmLog.i(tag_alarm, "no of records are " + c.getCount());
    AlarmLog.i(tag_alarm, "no of columns are " + c.getColumnCount());
    if (c != null) {
        String names[] = c.getColumnNames();
        for (String temp : names) {
            AlarmLog.d(tag_alarm, temp);
        }
        if (c.moveToFirst()) {
            do {
                for (int j = 0; j < c.getColumnCount(); j++) {
                    AlarmLog.i(tag_alarm, c.getColumnName(j)
                            + " which has value " + c.getString(j));
                }
            } while (c.moveToNext());
        }
    }

希望它有帮助并接收其他制造商的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android 4.0中获取闹钟信息并更改它 的相关文章

随机推荐

  • 创建“拼写检查”,以合理的运行时间检查数据库

    我不是在询问如何实现拼写检查算法本身 我有一个包含数十万条记录的数据库 我想要做的是针对所有这些记录的表中的特定列检查用户输入 并返回具有特定汉明距离的任何匹配项 同样 这个问题不是关于确定汉明距离等 当然 目的是创建一个 您的意思是 功能
  • pyspark 中的交叉验证

    我使用交叉验证来训练线性回归模型 使用以下代码 from pyspark ml evaluation import RegressionEvaluator lr LinearRegression maxIter maxIteration m
  • HMC SHA1 哈希 - Java 生成与 C# 不同的哈希输出

    这是后续this https stackoverflow com questions 7175067 hmc sha1 hash c sharp producing different hash output than ruby问题 但我正
  • C# - 调整图像画布大小(保持源图像的原始像素尺寸)

    我的目标是获取图像文件并将尺寸增加到 2 的下一个幂 同时保留像素原样 也称为不缩放源图像 因此基本上最终结果将是原始图像 加上跨越图像右侧和底部的额外空白 因此总尺寸是 2 的幂 下面是我现在正在使用的代码 它创建了具有正确尺寸的图像 但
  • 在 Linux 上获取机器 ID 的最佳方法?

    获取唯一机器 ID 的最佳实践方法是什么GNU Linux for i386建筑学 除了这个还有什么好的办法吗mac地址 根据您的内核 DMI 信息可能可以通过 sysfs 获得 尝试一下 cat sys class dmi id boar
  • git-svn rebase 和 dcommit 问题

    git version 1 7 1 svn version 1 6 12 Ubuntu 10 10 我只有 git 我用过 svn 不过我没一起用过 我有一个 git 存储库 我必须将我的存储库升级为 subversion 存储库 所以我一
  • Drupal 7中用户的图片存储在哪里?

    我正在使用 SelectQuery 对象来检索和显示用户列表 但我不知道从哪里获取用户的图片 users 表有一列名为 picture 但其中的数据只是一个整数 图片是否存储在某个 blob 字段中 或者是否存在指向另一个表中图片的链接 图
  • Android:使用选择器更改按钮背景图像和颜色

    我有一个按钮 我将其背景设置为特定selector 选择器当前更改按钮背景并更改图像作为背景 我还希望更改背景颜色 图像是周围有透明空间的图标 这是选择器
  • PM2 是否应该在开发过程中使用?

    我从 Node js 世界开始 我注意到节点进程不会自动重新启动 通过搜索 我发现 Nodemon 可以完成这项工作 但我还发现 PM2 是 Nodemon 的替代品 那么我应该尝试 PM2 进行开发还是直接将其用于生产并使用 nodemo
  • 使用PHP openssl_verify()函数验证Android客户端APP创建的签名和数据

    我读到了关于帖子openssl verify http php net manual en function openssl verify php 我想问一些与openssl verify 因为我的 PHP 代码无法验证从 Java 创建的
  • 类似于 Android 的 Cocoa Pods 和 Bundler(用于依赖项)?

    有没有类似于bundler ruby 和cocoa pods ios 的东西来管理Android中的依赖关系 Gradle Maven Central 似乎是 Android 的等价物
  • 在 NodeJS 中创建 HTTPS 客户端

    我花了很长时间才弄清楚如何使用 Node js v0 3 8 安全地连接到 HTTP 服务器 我有以下代码 var http require http var client http createClient 443 host secure
  • XSLT 输出格式:保留换行符、删除缩进

    这是我的 XML
  • 如何使用 ChemDraw/Python 从 InChI 创建 .cdx 文件?

    我想使用 Python 从 InChI 创建一个 ChemDraw cdx 文件 这answer https stackoverflow com a 51543307 7295599给出了一个解决方案cdx gt InChI 下面的最小示例
  • VIM 闪烁问题

    我从我的 mac OSX 10 6 8 通过 SSH 连接到运行 centOS5 的学校服务器 当我尝试使用 VIM 时 它不会停止在 mac 终端内闪烁 有想法该怎么解决这个吗 请记住 我无权修改服务器上的任何 etc 文件或 bin 文
  • 在 Spring Boot 应用程序中检索具有相同密钥的多个 aws Secret

    有一个 Spring Boot 应用程序 起始父级为 2 4 8 该应用程序正在连接到多个数据源 并且用于在整个公司创建机密的自动化 Jenkins 作业的方式是 尽管机密名称不同 每个应用程序 源 但它们都具有相同的值 用户名 和 密码
  • 对象输入流错误[重复]

    这个问题在这里已经有答案了 我正在使用 ObjectOutputStream 创建序列化对象的文件 然后 我使用 ObjectInputStream 和 readObject 方法将对象从文件中取出 第一次效果很好 这意味着如果该文件不存在
  • 在 gcc 4.7 中使用 std::bind 编译错误

    我在使用时遇到很多麻烦std bind在我的代码的各个地方 有时它有效 有时则无效 所以我认为我正在做一些根本错误的事情 据我了解 以下基本用法std bind应该可以正常工作 include
  • 如何将 sql_mode 设置为值列表

    我正在尝试使用第二代云 sql 并想更改 sql 模式 在 UI 中 我只能将 sql mode 设置为下拉列表中的一个值 但不能设置多个值 例如 STRICT MODE TRANS ALLOW INVALID DATES 实现这一目标的最
  • 在android 4.0中获取闹钟信息并更改它

    我正在尝试使用以下代码从内容提供商检索警报信息 final String tag alarm tag alarm Uri uri Uri parse content com android deskclock alarm Cursor c