Я получаю все события календаря, включая праздничные дни из Android База данных календаря с использованием контент-провайдеров. Поскольку я вошел в систему с двумя разными учетными записями Gmail , Запрос возвращает дубликат праздничных дней . Я хочу избежать дублирования праздников, и я пытаюсь сделать то же самое, внося изменения в Query.
Можно ли избежать дублирования праздников путем внесения изменений в запрос? Может ли кто-нибудь помочь мне с правильным запросом, который по умолчанию позволяет избежать дублирования праздников? Или есть другое решение для этой проблемы?
Ниже мой код:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] PROJECTION = { CalendarContract.Events._ID,
CalendarContract.Events.TITLE ,
CalendarContract.Events.OWNER_ACCOUNT,
CalendarContract.Events.ACCOUNT_NAME,
CalendarContract.Events.ACCOUNT_TYPE};
Cursor cursor = getContentResolver().query(
CalendarContract.Events.CONTENT_URI, PROJECTION, null, null,
null);
int titleIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.TITLE);
int eventIdIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events._ID);
int ownerAccountIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.OWNER_ACCOUNT);
int accountNameIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.ACCOUNT_NAME);
int accountTypeIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.ACCOUNT_TYPE);
String[] result = new String[cursor.getCount()];
while (cursor.moveToNext()) {
String name = cursor.getString(titleIndex);
String id = cursor.getString(eventIdIndex);
String ownerAccount = cursor.getString(ownerAccountIndex);
String accountName = cursor.getString(accountNameIndex);
String accountType = cursor.getString(accountTypeIndex);
result[cursor.getPosition()] = name + "(" + id + ")"+" ownerAccount->"+ownerAccount+", accountName-->"+accountName+" accountType->"+accountType;
Log.d("AllDataLog","* result->"+result[cursor.getPosition()]);
}
cursor.close();
}
}