Android 我的应用程序在安卓2.2和安卓2.3.3模拟器上运行,但不在我的手机galaxy s安卓2.3.5上运行/阅读facebook、twitter联系人?

Android 我的应用程序在安卓2.2和安卓2.3.3模拟器上运行,但不在我的手机galaxy s安卓2.3.5上运行/阅读facebook、twitter联系人?,android,android-emulator,android-sdk-2.3,Android,Android Emulator,Android Sdk 2.3,我的应用程序有问题 在埃及,他们打算在手机号码上增加额外的数字以扩大规模,所以我制作了一个应用程序,将现有号码修改为新号码 所以基本上我读取所有的电话号码,根据一些条件我操作它们并保存新数据 我使用adt插件在eclipse上工作,我已经在emulator 2.2和emulator 2.3上试用了该应用程序,并且工作非常好,可以修改所有联系人 但是当我在我的移动galaxy s android 2.3.5上传输时,它运行时没有保存新的联系人数据,我甚至调试了查看流程,它工作正常,可以修改所有号码

我的应用程序有问题

在埃及,他们打算在手机号码上增加额外的数字以扩大规模,所以我制作了一个应用程序,将现有号码修改为新号码

所以基本上我读取所有的电话号码,根据一些条件我操作它们并保存新数据

我使用adt插件在eclipse上工作,我已经在emulator 2.2和emulator 2.3上试用了该应用程序,并且工作非常好,可以修改所有联系人

但是当我在我的移动galaxy s android 2.3.5上传输时,它运行时没有保存新的联系人数据,我甚至调试了查看流程,它工作正常,可以修改所有号码并保存,没有错误,但是联系人不会更新

有什么原因吗,你能给我更多的想法吗

我想提供更多信息,我已经在手机上安装了froyo 2.2,但仍然不会保存新的联系人号码,虽然它在emulator上运行得很好,但我通过以下方式保存联系人:

    ContentResolver cr2 = getContentResolver();

                    String where = Data.RAW_CONTACT_ID + " = ? AND "
                            + String.valueOf(Phone.TYPE) + " = ? ";
                    String[] params = new String[] { id,
                            String.valueOf(type) };


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


                    ops.add(ContentProviderOperation
                            .newUpdate(Data.CONTENT_URI)
                            .withSelection(where, params)
                            .withValue(
                                    ContactsContract.CommonDataKinds.Phone.DATA,
                                    phoneNumber).build());



                    try {
                        cr2.applyBatch(ContactsContract.AUTHORITY,ops);
                    } catch (RemoteException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (OperationApplicationException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
ContentResolver cr2=getContentResolver();
字符串,其中=Data.RAW\u CONTACT\u ID+“=?和”
+String.valueOf(Phone.TYPE)+“=?”;
字符串[]参数=新字符串[]{id,
字符串.valueOf(type)};
ArrayList ops=新的ArrayList();
添加操作(ContentProviderOperation
.newUpdate(Data.CONTENT\u URI)
.选择(其中,参数)
.有价值(
Contacts contract.CommonDataTypes.Phone.DATA,
构建());
试一试{
cr2.applyBatch(联系人合同管理局,ops);
}捕获(远程异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(操作应用程序异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
好的,伙计们,对不起,我刚接触安卓系统,但我发现了错误,并将代码修改为:

ContentResolver cr2 = getContentResolver();

                    String where = Data.CONTACT_ID + " = ? AND " +Data.MIMETYPE + "='" +
                            Phone.CONTENT_ITEM_TYPE + "'" + " AND "
                            + String.valueOf(Phone.TYPE) + " = ? ";
                    String[] params = new String[] { id,
                            String.valueOf(type) };

                    // Cursor phoneCur = managedQuery(Data.CONTENT_URI,
                    // null, where, params, null);

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

                    ops.add(ContentProviderOperation
                            .newUpdate(Data.CONTENT_URI)
                            .withSelection(where, params).withValue(
                                    Phone.NUMBER,
                                    phoneNumber).build());



                    try {
                        cr2.applyBatch(ContactsContract.AUTHORITY, ops);
                        count++;
                        System.out.println(phoneNumber);
                    } catch (RemoteException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (OperationApplicationException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
ContentResolver cr2=getContentResolver();
字符串,其中=Data.CONTACT_ID+“=”和“+Data.MIMETYPE+”=”+
Phone.CONTENT_ITEM_TYPE+“+”“+”和”
+String.valueOf(Phone.TYPE)+“=?”;
字符串[]参数=新字符串[]{id,
字符串.valueOf(type)};
//游标phoneCur=managedQuery(Data.CONTENT\u URI,
//null,其中,参数,null);
ArrayList ops=新的ArrayList();
添加操作(ContentProviderOperation
.newUpdate(Data.CONTENT\u URI)
.withSelection(其中,参数)。withValue(
电话号码,
构建());
试一试{
cr2.applyBatch(ContactsContract.AUTHORITY,ops);
计数++;
System.out.println(电话号码);
}捕获(远程异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(操作应用程序异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}

技术上,我添加了mimetype,并且我曾经更新过phone.data,所以我也将其改为phone.number,现在它在2.2/2.3.5上工作正常,所以我想这个问题已经结束了,但我还有一件事要问,read contacts不包括facebook或twitter联系人,有没有办法读取所有联系人以更新他们,包括facebook和twitter???

你可以做一件事:只需更改项目属性文件并编辑
target=android-10
,然后重试

我在安卓2.3.5上也遇到了类似的问题,它不能打开、创建或读取数据库,还不确定。我的应用程序应该读取应用程序中包含的数据库,并且应该从资产文件夹复制到data/data/packagename/databases/,该应用程序在几乎所有Android版本上都能正常工作,但不是2.3.5,有什么想法吗?我相信你现在对这个版本有了更多的经验:)