如何解决未收到来自k9电子邮件的广播
我正在听从k9广播的电子邮件,但似乎无法正常工作。 我已经注册了以下接收器:com.fsck.k9.intent.action.EMAIL_RECEIVED
我想知道是否需要添加权限-我似乎无法收到此广播。
我知道我的接收器正在工作,因为我可以接收SMS和电话的广播。是否有其他人使用过此方法,可能可以使您对该主题有所了解?
这是我的过滤器:
IntentFilter fltr = new IntentFilter();
fltr.addAction(\"android.provider.Telephony.SMS_RECEIVED\");
fltr.addAction(\"com.fsck.k9.intent.action.EMAIL_RECEIVED\");
fltr.addAction(\"android.intent.action.PHONE_STATE\");
registerReceiver(mRcv,fltr);
在我的BroadcastReceiver中:
private static final String SMS_RECEIVED = \"android.provider.Telephony.SMS_RECEIVED\";
private static final String EMAIL_RECEIVED = \"com.fsck.k9.intent.action.EMAIL_RECEIVED\";
private static final String CALL_RECEIVED = \"android.intent.action.PHONE_STATE\";
public void onReceive( Context context,Intent intent ) {
Log.d(TAG,\"Inside Broadcast Reciever\");
Log.d(TAG,\"Action: \" + intent.getAction());
if(intent.getAction().equals(SMS_RECEIVED)) {
StartAct(\"SMS Received\",context);
}else if(intent.getAction().equals(EMAIL_RECEIVED)){
StartAct(\"Email received\",context);
}else if(intent.getAction().equals(CALL_RECEIVED)){
if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING))
StartAct(\"Incoming Phone Call\",context);
}
}
解决方法
我有工作-终于....
您必须向意图过滤器添加数据方案。这将使您可以接收广播。但是它将破坏我在过滤器中执行的其他操作,因此我不得不将它们分解为单独的接收器-一个用于SMS和电话,另一个用于k9电子邮件广播。
这是k9电子邮件的电子邮件地址:
IntentFilter fltr = new IntentFilter();
fltr.addAction(\"com.fsck.k9.intent.action.EMAIL_RECEIVED\");
fltr.addDataScheme(\"email\"); //This is needed to even receive the broadcast
registerReceiver(mRcv,fltr);
,尝试查看实际的K9源代码。 AndroidManifest显示了它们具有的几个权限。尝试使用挂钩的Eclipse编译程序并检查LogCat,如果缺少权限,通常会在错误部分显示该程序。我只看到他们创建的4个声明的权限,所以我想是READ_MESSAGE,但请检查logcat并查看其内容。
不幸的是,他们的文档似乎缺乏很多,这真是太可惜了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。