【问题标题】:Broad cast receiver for Incoming Gmails传入电子邮件的广播接收器
【发布时间】:2013-06-04 09:25:35
【问题描述】:
我需要做的是创建一个应用程序,根据发件人为每个传入的 Gmail 生成自定义通知声音。因此,我需要在收到新邮件时收到通知,并获取电子邮件发件人的 email_id 或名称。
我想到的几个解决方案是,
1) Gmail 标签 API - 但它不提供有关内部电子邮件或通知的信息。
2) 使用具有 READ_GMAIL 权限的内容解析器 - 我认为 Gmail 已停止访问较新的 Gmail 版本。
3) 读取通知栏或通知监听器 - Android 不允许读取通知栏。
有没有其他解决方法可以解决这个问题?
【问题讨论】:
标签:
android
notifications
gmail
broadcastreceiver
listener
【解决方案1】:
不清楚,希望对你有帮助
- 你需要注册一个内容观察者(不是广播接收者)
contentResolver.registerContentObserver(Uri.parse("content://gmail- ls"), true, _gmailObserver);
_gmailObserver 是您自己的 ContentObserver 对象。
-
ContentObserver.onChange 每次在 Gmail 中发生变化时都会被调用。
在这里你会得到所有这样的对话:
Cursor conversations = _contetResolver.query(Uri.parse("content://gmail-ls/conversations/" + YourEmailAddress, null, null, null, null);
实际的对话消息将是:
Cursor messages = _contetResolver.query(Uri .parse("content://gmail-ls/conversations/" + YourEmailAddress + "/" + String.valueOf(conversationId) + "/messages"), null, null, null, null);
【解决方案2】:
这是不可能的,至少通过任何记录和支持的方式是不可能的。