首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何注册短信数据库变更?

如何注册短信数据库变更?
EN

Stack Overflow用户
提问于 2009-08-17 00:14:08
回答 2查看 2.1K关注 0票数 3

如何注册短信数据库变更?

我试过了:

代码语言:javascript
复制
mCursor = mActivity.getContentResolver().query(Sms.CONTENT_URI, new String[] {
           Sms.ADDRESS
   }, null, null, null);
mCursor.registerDataSetObserver(mydataSetObserver);

其中mydataSetObserver的实现方式如下:

代码语言:javascript
复制
 private class MyDataSetObserver extends DataSetObserver {
       public void onChanged() {
           System.out.println ("1");
       }
       public void onInvalidated() {
            System.out.println ("2");
       }
}

但当我尝试在模拟器中发送短信时,MyDataSetObserver从未被调用过。

你能告诉我为什么吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-28 02:49:31

听起来你想要做的就是能够修改设备上的SMS数据库。

我过去的方法是在AndroidManifest.xml中使用标签。我创建的应用程序需要使用READ_SMS权限和READ_CONTACTS权限,但是获得写入数据库的权限也是以同样的方式完成的。

我在AndroidManifest.xml文件中使用以下标记定义了这些所需的权限:

WRITE_SMS包含在您可以使用的list of permissions中,它将为您提供所需的功能。

请注意:由于我是一个新用户,StackOverflow只允许我张贴这篇文章的一个超链接,我试图包括更多的信息,但无法做到。如果需要,请访问安卓开发人员网站,搜索AndroidManifest.xml文件并查看更多信息。

票数 3
EN

Stack Overflow用户

发布于 2009-08-17 07:10:15

DataSetObserver%s仅观察向其注册的DataSetObservable%s。您的MyDataSetObserver已注册到您的mCursor,并将在mCursor更改时(例如,在requery之后)得到通知,但不会在内容由另一个进程(如消息传递应用程序)写入时通知您。

不幸的是,目前还没有很好的方法来监听发送的文本消息的事件,最好的替代方案似乎是轮询content://sms/sent,可能使用ContentObserver

This问题是相关的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1285720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档