キャッシュされた名前で通話記録を並べ替えたいのですが。キャッシュされた名前はnullにすることができます。したがって、キャッシュされた名前がnullの場合、エイリアスの電話番号が必要です。
sqliteには、ifnull()関数があります。 ifnullの詳細
私は試してみます:
String[] projections = new String[] { Calls._ID, Calls.NUMBER, Calls.DATE, Calls.TYPE, Calls.DURATION, "ifnull("+Calls.CACHED_NAME+","+Calls.NUMBER+") as display_name" };
Cursor cursor_call = ctx.getContentResolver().query(URI_CALL_LOGS,
projections,
null,
null,
null);
しかし、ifnullの使用でエラーが発生し、この関数のサンプルが見つかりません。
java.lang.IllegalArgumentException:display_nameとして無効な列ifnull(name、number)