Android 接收Gmails的宽频广播接收机

Android 接收Gmails的宽频广播接收机,android,notifications,gmail,broadcastreceiver,listener,Android,Notifications,Gmail,Broadcastreceiver,Listener,我需要做的是创建一个应用程序,根据发件人的不同为每个收到的Gmail生成自定义通知声音。因此,当新邮件到达时,我需要得到通知,并获得电子邮件的发件人的电子邮件id或姓名。 我想到的解决方案很少是 1) Gmail标签API-但它不提供内部电子邮件的信息或通知。 2) 使用具有READ_GMAIL权限的内容解析器——我认为GMAIL已经停止了对较新GMAIL版本的访问。 3) 阅读通知栏或通知侦听器-Android不允许阅读通知栏 有没有其他解决办法 这是不可能的,至少通过任何有文件记录和支持的方

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

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


有没有其他解决办法

这是不可能的,至少通过任何有文件记录和支持的方式是不可能的。

我不确定,希望这能帮助您解决问题

  • 您需要注册内容观察者(不是广播接收器)
  • contentResolver.registerContentObserver(Uri.parse()content://gmail- ls”),正确,_gmailObserver)

    \u gmailObserver
    是您自己的
    ContentObserver
    对象

  • 每当Gmail中发生变化时,就会调用ContentObserver.onChange
  • 在这里,您可以看到所有这样的对话:

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