2016-11-30 9 views
0

連絡先に最後に追加された連絡先を取得したいと思っています。連絡先の最大_idを引き出そうとしています。だからここに私が実現したい私のクエリです:Contacts.CONTENT_URIからContentResolverから最大_idを取得

AppMain.applicationContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, 
    new String[]{ 
      "MAX(" + ContactsContract.Contacts._ID + ") as max_id", 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER 
    }, 
    null, null, null); 

しかし残念ながら、私はこのエラーを取得しています:max_id

として 無効な列MAX(contact_idを)私は「とmax_id」は運を削除しようとしました。

最後に追加した連絡先を取得する方法、または連絡先の最大_idを取得する方法を知っている人はいませんか。

答えて

0

これは、AndroidのContentProviderフレームワークで正式にサポートされていません。特に、プロバイダがstrictProjectionMapフラグを設定している場合は、

しかし、これではなく動作するはずです、それが接触-idでソートされたすべての連絡先を要求し、そして1に結果を制限しています

Cursor c = cr.query(Contacts.CONTENT_URI, new String[] { Contacts._ID }, null, null, Contacts._ID + "DESC LIMIT 1"); 
if (c != null && c.moveToNext()) { 
    Log.d(TAG, "id is: " + c.getLong(0)); 
}