@hide のコードは、使わない方が良い。

よく調べもせずに書いてしまった。address_book_index_extras
Android で、Contactの情報を取得する Uri にこのオプション true を指定すると連絡先の
インデックスの情報、インデックス毎のカウントなど取得できるのだが、
どうも、結果が怪しい!

Android ソースコードを調べると、これは

android.provider.ContactsContract.ContactCounts
という、隠された interface で定義したもので、ContactCounts を打っても、そんなクラスは存在せずエラーになる、
つまり、@hide APIなのである。

ContactCount で、
ADDRESS_BOOK_INDEX_EXTRAS = "address_book_index_extras"
EXTRA_ADDRESS_BOOK_INDEX_TITLES = "address_book_index_titles"
EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "address_book_index_counts"
これらが、@hide として定義されてる。

Cursor から、getExtra で取得する Bundle から情報が取得できるが、
どうも、値が怪しい。。。

@hide がついて、Android SDK からエクスポートされないから、
import android.provider.ContactsContract.ContactCounts;
も、コンパイル通らないわけであって、無理やり、

CommonDataKinds.Email.CONTENT_URI.buildUpon().appendQueryParameter("address_book_index_extras", "true").build()

という Uri を使うのは、良くない!


android.provider.ContactsContract は、他にも @hide だらけだった。。。