2012-01-23 31 views
0

想要在清單中定義廣播接收器,所以我不必作爲服務運行。我的目標是檢查任何新創建的電子郵件地址是否已更新,刪除。有問題,我嘗試了幾件事情。從另一篇文章我想這一點:電子郵件清單定義的廣播接收器CRUD

<receiver 
      android:name="EmailReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.EDIT" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      <data android:mimeType="vnd.android.cursor.item/person" 
       android:host="contacts" /> 
      <data android:mimeType="vnd.android.cursor.item/contact" 
       android:host="com.android.contacts" /> 
      <data android:mimeType="vnd.android.cursor.item/raw_contact" 
       android:host="com.android.contacts" /> 
      </intent-filter> 
</receiver> 

public class EmailReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Bundle extras = intent.getExtras(); 
     Log.e("DEBUG", "Did this work?"); 

    } 
} 

我也曾嘗試<data android:mimeType="vnd.android.cursor.item/email_v2">這也造成任何改變,當我編輯聯繫人的電子郵件地址。

回答

1

我的目標是檢查任何新創建的電子郵件地址是否已更新,刪除。

對於這些操作AFAIK沒有廣播Intents

從另一篇文章我想這一點:

ACTION_EDIT是活動動作。你可以這樣說,因爲the documentation says that ACTION_EDIT is an activity action。這不用於廣播。

+0

所以最好的辦法是開始一個服務粘滯,只需註冊一個內容觀察員。希望避免這種情況,但猜測這會起作用。 – Chrispix

+0

@Chrispix:恕我直言,最好的辦法就是不要這樣做。爲什麼您認爲需要在用戶更新聯繫人時實時持續地收到通知? – CommonsWare

+0

好吧,或許更好的方法去解決這個問題。在默認的快速聯繫人徽章上,我需要爲任何擁有電子郵件地址的用戶顯示一個圖標(如Skype,聊天/語音/視頻)。我試圖爲email_v2添加一個意圖過濾器,但似乎只是在QCB中的電子郵件圖標下放置了一個記錄。它看起來像能夠得到一個圖標,也出現在電子郵件地址帳戶,我需要同步我自己的聯繫人和複製電子郵件記錄瓦特/我自己的mimetype。基本上,如果用戶有一個電子郵件帳戶,我希望他們能夠通過聯繫人列出的電子郵件地址發起會議 – Chrispix