Androidで次のようなことができるかどうか知りたいです:
public Cursor getFlowsByCategory(int type, int categoryID, int limit) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
final String[] columns = {ID, FLAGS, SUBJECT, AMOUNT, AMOUNT_NO, CATEGORY};
final String selection = "((" + FLAGS + " & ?) >> 1 = ?) AND (" + CATEGORY + " = ?)";
final String[] selectionArgs = {Integer.toString(Flow.FLOW_TYPE), Integer.toString(type), Integer.toString(categoryID)};
return db.query(TABLE, columns, selection, selectionArgs, null, null, ID + " DESC", Integer.toString(limit));
}
FLAGS は 1 バイトのビット マスクで、マスクの 2 番目のビット (位置 1) がオンになっている行のみを選択したいと考えています。マスク (Flow.FLOW_TYPE) は 0b00000010 で、型パラメーターは 0 または 1 のいずれかです。動作するはずですが、動作しません。何が間違っているのでしょうか?