传入电子邮件的广播接收器

时间:2013-06-04 09:25:36

标签: android notifications gmail broadcastreceiver listener

我需要做的是创建一个应用程序,根据发件人的不同,为每个传入的Gmail生成自定义通知声音。因此,我需要在收到新邮件时收到通知,并获取电子邮件发件人的email_id或名称。 我想到的解决方案很少,

1)Gmail标签API - 但它不提供有关内部电子邮件的信息或通知。 2)使用具有READ_GMAIL权限的内容解析器 - 我认为Gmail已停止访问较新的Gmail版本。 3)阅读通知栏或通知监听器 - Android不允许阅读通知栏。

还有其他可以解决此问题的解决方法吗?

2 个答案:

答案 0 :(得分:2)

我不确定,希望这会帮助你

  1. 您需要注册内容观察者(不是广播接收者)
  2. contentResolver.registerContentObserver(Uri.parse("content://gmail- ls"), true, _gmailObserver);

    _gmailObserver是您自己的ContentObserver个对象。

      每当Gmail发生变化时,都会调用
    1. ContentObserver.onChange
    2. 在这里你可以得到所有的对话:

      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); 
      

答案 1 :(得分:0)

这是不可能的,至少是通过任何记录和支持的手段。