2011-12-27 61 views
1

,我有一個廣播接收器中運行此代碼:嘗試基於以前的答案,我得查詢ContactList

Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(ASenderTel)); 
// Also tried; 
//ContentResolver cr = getContentResolver(); 
//Context c = this; 
Cursor c = getContentResolver().query(lookupUri, new String[] { PhoneLookup._ID }, null, null, null); 
return (c.getCount() > 0); 

...但得到錯誤信息「時,方法getContentResolver()是未定義的類型KITSMSReceiver「

+0

如果我使用: ContentResolver的CR = getContentResolver()查詢(lookupUri, 新的String [] {} PhoneLookup._ID ,null,null,null); ...的錯誤消息,則「的方法getContentResolver()是未定義的類型KITSMSReceiver」 (KITSMSReceiver是一個BroadcastReceiver) – 2011-12-27 01:05:15

回答

2

getContentResolver()是android.content.Context類的方法。例如,您可以從您的活動中訪問它。爲了更好地實現它把廣播接收機活動類中:

快速草案:

public class MyActivity extends Activity { 

    // ... 

    private BroadcastReceiver myReceiver = new BroadcastReceiver() { 
    public void onReceive(Context c, Intent i) { 
     MyActivity.this.recvBroadcast(i); // forward to your activity 
     MyActivity.this.getContentResolver(); // <----- 
    } 
    }}; 

    // ... 

} 
+0

這似乎非常錯綜複雜;那真的是「首選方法」嗎?是一個私人的BroadcastReceiver,然後可見的事件,應該援引它? – 2011-12-27 01:39:27

+0

實際上,您可以使用onReceive方法附帶的Context參數,並將您的BroadcastReceiver放在單獨的文件中 – marcinj 2011-12-27 09:50:55

相關問題