私はアンドロイドの連絡先リストから連絡先を削除するアプリケーションを作成しました。エミュレータで正常に動作していますが、デバイス内のコンタクトを削除していません。何が問題なの?私はcode.pleaseを投稿しています。エミュレータで動作しているが、デバイスではない連絡先を削除する
ArrayList ops = new ArrayList();
String [] args = new String [] {contactId};
// if id is raw contact id
ops.add(ContentProviderOperation.newDelete(RawContacts.CONTENT_URI).withSelection(RawContacts._ID + "=?", args) .build());
// if id is contact id
//ops.add(ContentProviderOperation.newDelete(RawContacts.CONTENT_URI).withSelection(RawContacts.CONTACT_ID + "=?", args) .build());
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
発見接触は、このコードを使用して行われ
ストリングget_Number(文字列名) {
列番号= NULL;
String where= "DISPLAY_NAME like ?";
Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, where, new String[]{name}, null);
people.moveToFirst();
try{
contactId = people.getString(people.getColumnIndex(ContactsContract.Contacts._ID)); //this is the ID used to delete contact
String hasPhone = people.getString(people.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
hasPhone = "true";
else
hasPhone = "false" ;
if (Boolean.parseBoolean(hasPhone))
{
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);
while (phones.moveToNext())
{
number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// mConno.add(position,phoneNumber);
}
phones.close();
}
}
catch(Exception e)
{
}
return number;
}
とマニフェストに設定された権限は、ちょうど今、私が開発したこのアプリの奇妙な行動を発見した
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS" />
です。この削除連絡先アプリの前に、私は "連絡先を追加"アプリを開発しました。
何が起こっているのですか?「連絡先を追加」アプリケーションで追加された連絡先を削除することはできませんが、手動で追加された連絡先を削除することはできません。
しかし、エミュレータで正常に動作しています。モバイルではない。何が起こっているのですか?
連絡先を削除しようとするとどうなりますか?エラーなどがありますか? –
モバイルナンバーにはエラーが表示されませんでした。「連絡先が削除されました」と言っています。実際には連絡先を削除していません。 – siva
どのAndroidバージョンをお使いですか?デバイスで?そして、エミュレータでは? – PKeidel