2012-02-02 4 views
0

私は現在、ユーザーに連絡先リストを表示するアプリで作業しています。サムスンのROMにバグがありますか?

そのリストで

、名前、連絡先の写真や連絡先の電子メールが示されなければならないので、私はこのようなリストを得る:

final Cursor c = managedQuery(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,ContactsContract.CommonDataKinds.Email.TYPE + "="+ContactsContract.CommonDataKinds.Email.TYPE_HOME , null,ContactsContract.Contacts.DISPLAY_NAME); 

int tamano= c.getCount();  

Log.e("USER", "The size of the contact list is : " + tamano); 

そして、ここでは、ことだ...

を私は3つのsamsung携帯電話(2ギャラクシーSIIと1ギャラクシーACE)、2 HTC(1 HTC Desire Sと1 HTC Wildfire)で試しました。

結果は、少なくとも、面白いです:

すべての銀河で

連絡先リストのサイズは次のとおりです。

のサイズ:HTCと9

連絡先リストは482

です。すべての電話機は同じGmailアカウントと同期しているので、連絡先の電話番号は同じです...

これはどのように可能ですか?サムスンのROMにバグや何かがありますか?

ご挨拶!

** *溶液でEDIT:

ITワークス!そして今、私は問題が何であるかを知っている:今

ContactsContract.CommonDataKinds.Email.TYPE_OTHER 

ContactsContract.CommonDataKinds.Email.TYPE_HOME 

事はサムスンの連絡先にHTCと同じ方法を整理していない、と今では、この小さな変更で固定だということですすべての連絡先がすべての電話に表示されます(ギャラクシーエースを除いて、しかしそれは奇妙なROMのためかもしれません...)感謝!

答えて

0

私はそうのようなあなたのクエリを変更します...

= managedQuery(ContactsContract.Data.CONTENT_URI 
, null 
, ContactsContract.DATA.MIMETYPE+"=? AND "+ContactsContract.CommonDataKinds.Email.TYPE+"=?" 
, new String[]{ContactsContract.CommonDataKinds.Email.Content_Item_Type, ContactsContract.CommonDataKinds.Email.TYPE_HOME} 
, ContactsContract.DATA.DISPLAY_NAME); 

私はこれをテストしなかったが、右または類似していなければなりません。 = managedQuery(ContactsContract:

素朴な方法は

public static void displayCursor(Cursor c){ 
    int columnCount; 
    if(c.moveToFirst()){ 
     columnCount = c.getColumnCount(); 
     do{ 
      Log.i(" ", "********************"); 
      for(int i=0;i<columnCount;i++){ 
       try{ 
        Log.i(c.getColumnName(i)+":", c.getString(i)+" "); 
       }catch(Exception e){ 

       } 
      } 
     }while(c.moveToNext()); 
    } 
} 
+0

全く同じデバッグを支援するためにカーソルを表示するには... 9つの連絡先...ところで 、コードはを返し続けます.Data.CONTENT_URI、null、ContactsContract.Data.MIMETYPE + "=?AND" + ContactsContract.CommonDataKinds.Email.TYPE + "=?"、新しいString [] {ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE、ContactsContract.CommonDataKinds.Email.TYPE_HOME + ""}、ContactsContract.Data.DISPLAY_NAME); – vicks630

+0

私は連絡先の表示もチェックします(ただしこれは興味がありません)。また、古いデバイスの集約がタイプを正しく関連付けておらず、サイズが一致するかどうかを調べるために、タイプの一致を削除してください。それが正しい場合は、結果を表示するだけです。私は非常に素朴な表示機能をデバッグのために入れて書いた – Maurycy

+0

IT WORKS!そして今、私は問題が何であるかを知っている: ContactsContract: ContactsContract.CommonDataKinds.Email.TYPE_HOME 事はサムスンが同様のHTCが行う連絡先を整理しない、と今では、この小さな変更で固定だということです。 CommonDataKinds.Email.TYPE_OTHER 今、すべての連絡先は、すべての携帯電話に表示されます(ギャラクシーエースを除き、しかしのでそれが持っている奇妙なROMであるかもしれない...) THANKS! – vicks630

関連する問題