계정 동기화를 수행 중이며 해당 과정에 포함 된 단계는 맞춤식 벨소리가있는 단계입니다. 덧붙였다.Android : 연락처에 벨소리를 추가하는 기능이 방금 추가 한 연락처에서 작동하지 않지만 이전 동기화시 추가 한 연락처에서 작동합니다.
private static void ringtoneSync(ContentResolver resolver, String username, Context context) {
ContentValues values = new ContentValues();
Log.e("SYNC", "setting ringtone for " + username);
long rawContactId = lookupRawContact(resolver, username);
long contactId = getContactId(resolver, rawContactId);
File root = Environment.getExternalStorageDirectory();
TagDBAdapter adapter = new TagDBAdapter(context);
adapter.open();
String ringtone = adapter.getContactRingtonePath(username);
adapter.close();
Log.e("test", "ringtone checkpoint name here: " + ringtone);
File file = new File(root, "tag/ringtones/"+ ringtone + ".mp3");
if(file.exists()) {
Log.e("test", "ringtone checkpoint if file exists");
Uri oldUri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
resolver.delete(oldUri, MediaStore.MediaColumns.DATA + "=\"" + file.getAbsolutePath() + "\"", null);
values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, ringtone);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
Uri newUri = resolver.insert(uri, values);
String uriString = newUri.toString();
values.put(ContactsContract.Contacts.CUSTOM_RINGTONE, uriString);
Log.e("Uri String for " + username, uriString);
resolver.update(ContactsContract.Contacts.CONTENT_URI, values, Contacts._ID + "=" + contactId, null);
}
}
이 방법은, 위대한 작품을 내가 사전에 처음으로 계정에 연락처를 추가하고 때를 제외하고 : 여기에 벨소리를 추가하는 나의 방법이다. 당신이 신규 또는 기존 연락처의 경우 매우 유사 관계라고 볼 수 있습니다 그래서
for(Contact contact : friends) {
Log.e("SYNCING CONTACTS", "Start for loop");
username = contact.getUsername();
rawContactId = lookupRawContact(resolver, username);
if(rawContactId != 0) {
if(!contact.isDeleted()) {
Log.e("SYNCING CONTACTS", "Updating " + username);
updateContact(context, resolver, account, contact, rawContactId, batchOperation);
ringtoneSync(resolver, username, context);
}
else {
Log.e("SYNCING CONTACTS", "Deleting " + username);
deleteContact(context, rawContactId, batchOperation);
}
}
else {
if(!contact.isDeleted()) {
Log.e("SYNCING CONTACTS", "Adding " + username);
addContact(context, account, contact, batchOperation);
ringtoneSync(resolver, username, context);
}
}
을하지만, 실제로 기존 연락처에 대한 작동 : 추가 연락처에 내 호출은 다음과 같이 구성되어있다. 또한 벨소리가 성공적으로 추가되지 않은 경우에도 체크 포인트로 입력 한 모든 로그 라인이 정확하게 logcat에 표시됩니다.
나는 무슨 일이 일어나고 있는지, 어떤 생각이든 내 인생을 생각할 수 없다.