Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向sim卡添加联系人_Java_Android_Contacts_Sim Card - Fatal编程技术网

Java 向sim卡添加联系人

Java 向sim卡添加联系人,java,android,contacts,sim-card,Java,Android,Contacts,Sim Card,我正在尝试将联系人添加到SIM卡中,他们似乎已添加到SIM卡中,但只有在重新启动设备(甚至是本地人应用程序)后才能看到他们 以下是我正在使用的代码: final Uri uri = Uri.parse("content://icc/adn"); ContentValues mContentValue = new ContentValues(); mContentValue.put("tag", contactName); mContentValue.put("number", contactNu

我正在尝试将联系人添加到SIM卡中,他们似乎已添加到SIM卡中,但只有在重新启动设备(甚至是本地人应用程序)后才能看到他们

以下是我正在使用的代码:

final Uri uri = Uri.parse("content://icc/adn");
ContentValues mContentValue = new ContentValues();
mContentValue.put("tag", contactName);
mContentValue.put("number", contactNumber);
getContentResolver().insert(uri, mContentValue);
创建联系人后同步联系人数据库是否有问题?如果是这样,有没有办法强迫android将联系人数据库与SIM卡同步


编辑

好的,让我再解释一下我的问题。这位男士也有同样的问题,但没有任何答案(),所以我需要再问一次。
帐户类型:com.android.contacts.sim帐户名称:sim不适合我的手机。我直接从contacts contract.Settings.CONTENT\u URI中获得:com.android.huawei.phone-phone和com.android.huawei.sim-sim1。 这是我的密码:

ArrayList<ContentProviderOperation> op = new ArrayList<>();

Uri simUri = Uri.parse("content://icc/adn");
ContentValues values = new ContentValues();
values.put("tag", "NAME");
values.put("number", "77777777777");
try {
    Uri uri =  context.getContentResolver().insert(simUri, values);

    int efid = 0,index = 0;
    Pattern pattern = Pattern.compile("^content://icc/adn/(\\d+)/(\\d+)$*");
    Matcher matcher = pattern.matcher(uri.toString());
    if(matcher.matches()) {
        index = Integer.parseInt(matcher.group(1));
        efid = Integer.parseInt(matcher.group(2));
    }

    ArrayAdapterSpinner.Item item = adapter.getItem(spinner.getSelectedItemPosition());

    op.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
            .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.android.huawei.sim")
            .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, "sim1")
            .withValue(ContactsContract.RawContacts.SYNC1,efid)
            .withValue(ContactsContract.RawContacts.SYNC2,index)
            .build());
    op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
            .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "NAME")
            .build());
    op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
            .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "77777777777")
            .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
            .build());

    try {
        ContentProviderResult[] cprs = context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);
    } catch (Exception e) {
        Log.e("ERROR", e.getMessage());
    }
} catch(Exception e) {
    Log.e("ERROR2", e.toString());
}
ArrayList op=new ArrayList();
Uri simUri=Uri.parse(“content://icc/adn");
ContentValues=新的ContentValues();
值。放置(“标记”、“名称”);
价值。投入(“数字”、“777”);
试一试{
Uri=context.getContentResolver().insert(simUri,value);
int efid=0,index=0;
Pattern=Pattern.compile(“^content://icc/adn/(\\d+/(\\d+)$*”;
Matcher Matcher=pattern.Matcher(uri.toString());
if(matcher.matches()){
index=Integer.parseInt(matcher.group(1));
efid=Integer.parseInt(matcher.group(2));
}
ArrayAdapterSpinner.Item=adapter.getItem(spinner.getSelectedItemPosition());
op.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT\u URI)
.withValue(contacts contract.raw contacts.ACCOUNT_TYPE,“com.android.huawei.sim”)
.withValue(contacts contract.raw contacts.ACCOUNT_NAME,“sim1”)
.withValue(contacts contract.raw contacts.SYNC1,efid)
.withValue(contacts contract.raw contacts.SYNC2,索引)
.build());
op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.withValue(contacts contract.Data.MIMETYPE、contacts contract.commonDataTypes.StructuredName.CONTENT\u ITEM\u TYPE)
.withValue(contacts contract.CommonDataTypes.StructuredName.DISPLAY_NAME,“NAME”)
.build());
op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT\u URI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,0)
.withValue(contacts contract.Data.MIMETYPE、contacts contract.commondatatypes.Phone.CONTENT\u ITEM\u TYPE)
.带值(contacts contract.commondatatypes.Phone.NUMBER,“777”)
.withValue(contacts contract.commondatatypes.Phone.TYPE,contacts contract.commondatatypes.Phone.TYPE\u MOBILE)
.build());
试一试{
ContentProviderResult[]cprs=context.getContentResolver().applyBatch(ContactsContract.AUTHORITY,op);
}捕获(例外e){
Log.e(“ERROR”,e.getMessage());
}
}捕获(例外e){
Log.e(“ERROR2”,e.toString());
}
但结果是:
1.已创建icc/adn中的联系人
2.已创建RawContacts中的联系人,但帐户类型为 帐户名被com.android.huawei.phone-phone替换了

也许这会有所帮助

 try{
                // add a row to the RawContacts table
         ContentValues values = new ContentValues();
         values.put(RawContacts.ACCOUNT_TYPE, "com.android.contacts.sim");
         values.put(RawContacts.ACCOUNT_NAME, "SIM");
         Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);

        // get the ID of the newly-added line
 long rawContactId = ContentUris.parseId(rawContactUri);

        // add a "name" line to the Data table, linking it to the new RawContact
        // with the CONTACT_ID column
 values.clear();
 values.put(Data.RAW_CONTACT_ID, rawContactId);
 values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
 values.put(StructuredName.DISPLAY_NAME, "Name");
 cr.insert(Data.CONTENT_URI, values);
  getContentResolver().notifyChange(Uri_Here,null); 
        // add a "phone" line to the Data table, linking it to the new RawContact
        // with the CONTACT_ID column
 values.clear();
 values.put(Data.RAW_CONTACT_ID, rawContactId);
 values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
 values.put(Phone.NUMBER, "+12345678901");
 values.put(Phone.TYPE, Phone.TYPE_MOBILE);
 cr.insert(Data.CONTENT_URI, values);
getContentResolver().notifyChange(Uri_Here,null); 
//New Edit
}
catch(Exception e){
    //exception handling
}
也许会有帮助

 try{
                // add a row to the RawContacts table
         ContentValues values = new ContentValues();
         values.put(RawContacts.ACCOUNT_TYPE, "com.android.contacts.sim");
         values.put(RawContacts.ACCOUNT_NAME, "SIM");
         Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);

        // get the ID of the newly-added line
 long rawContactId = ContentUris.parseId(rawContactUri);

        // add a "name" line to the Data table, linking it to the new RawContact
        // with the CONTACT_ID column
 values.clear();
 values.put(Data.RAW_CONTACT_ID, rawContactId);
 values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
 values.put(StructuredName.DISPLAY_NAME, "Name");
 cr.insert(Data.CONTENT_URI, values);
  getContentResolver().notifyChange(Uri_Here,null); 
        // add a "phone" line to the Data table, linking it to the new RawContact
        // with the CONTACT_ID column
 values.clear();
 values.put(Data.RAW_CONTACT_ID, rawContactId);
 values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
 values.put(Phone.NUMBER, "+12345678901");
 values.put(Phone.TYPE, Phone.TYPE_MOBILE);
 cr.insert(Data.CONTENT_URI, values);
getContentResolver().notifyChange(Uri_Here,null); 
//New Edit
}
catch(Exception e){
    //exception handling
}

嗯。。。我的错误。我已经重新解释了我的问题。检查我的编辑检查我的新编辑…getContentResolver().notifyChange(simUri,null);添加此项以便立即显示。它似乎不起作用。。。我向“icc/adn”添加了联系人,并通知了“icc/adn”uri的更改。结果:联系人已添加到“icc/adn”中,但未显示在设备存储中。。。我的错误。我已经重新解释了我的问题。检查我的编辑检查我的新编辑…getContentResolver().notifyChange(simUri,null);添加此项以便立即显示。它似乎不起作用。。。我向“icc/adn”添加了联系人,并通知了“icc/adn”uri的更改。结果:联系人添加到“icc/adn”中,但未显示在设备存储中。