VCardparsing を行うサービスがあります。これが完了したらメソッドを実行したい。私のメソッドには DB クエリが含まれているため、サービスに直接含めることはできません。
ここからサービスが実行されているかどうかを確認できることがわかりました。しかし、これは私の目的には役立ちません。続行するにはどうすればよいですか。
編集
private void createFavorites() {
DBAdapter db = new DBAdapter(this);
db.open();
Cursor favoriteCursor = db.getAllNumbers();
Uri contactUri = ContactsContract.Data.CONTENT_URI;
String[] contactProjection = new String[] {
ContactsContract.Data._ID,
ContactsContract.Data.DATA1,// gets number
ContactsContract.Data.DATA2,// gets type
};
Cursor contactCursor = managedQuery(contactUri, contactProjection,
null, null, null);
CursorJoiner joiner = new CursorJoiner(favoriteCursor,
new String[] { DBAdapter.KEY_NUMBER }, contactCursor,
new String[] { ContactsContract.Data.DATA1 });
MatrixCursor cursor = new MatrixCursor(new String[] { "number"}, 10);
for (CursorJoiner.Result joinerResult : joiner) {
switch (joinerResult) {
case BOTH: // handle case where a row with the same key is in
String id = contactCursor.getString(0);
// String secret_identity = sipCursor.getString(1);
cursor.addRow(new String[] { id });
break;
}
}
db.close();
Log.d(LOG_TAG, "final favorite contact " + cursor.getCount() + favoriteCursor.getCount() + contactCursor.getCount());
}
私がここでやろうとしているのは、お気に入りの数字を保持するデータベースが既にあるということです。その番号がそれらの vcf の 1 つに存在する場合、vcf を解析するときに、それらをお気に入りとしてマークしたいと思います。