jjzjj

android - 在android中创建gmail联系人组

coder 2023-12-23 原文

在我的 android 应用程序中,我尝试创建一个 gmail 组但无法创建

下面是我试过的方法

ArrayList<ContentProviderOperation> opsGroup = new ArrayList<ContentProviderOperation>();
            opsGroup.add(ContentProviderOperation
                    .newInsert(ContactsContract.Groups.CONTENT_URI)
                    .withValue(ContactsContract.Groups.TITLE, GroupTitle)
                    .withValue(ContactsContract.Groups.GROUP_VISIBLE, 1)
                    .withValue(ContactsContract.Groups.ACCOUNT_NAME, "sarobrindha")//my gmail name
                    .withValue(ContactsContract.Groups.ACCOUNT_TYPE,
                            "gmail.com")
                    .withValue(ContactsContract.Groups.SHOULD_SYNC, true)
                    .build());
            try {

                con.getContentResolver().applyBatch(ContactsContract.AUTHORITY,
                        opsGroup);
            } catch (Exception e) {
                e.printStackTrace();
            }

我犯了什么错误。 请帮我弄清楚

谢谢

最佳答案

您可以简单地进行数据库查询。

看看这个方法:

private Boolean createGrp(String GroupName) {
    // TODO Auto-generated method stub

    String s = "";
    for (int i = 0; i < InteractiveArrayAdapter.list.size(); i++) {
        if (InteractiveArrayAdapter.list.get(i).isSelected()) {
            s = s + i + " ";
        }
    }
    String s1 = null;
    s1 = editText.getText().toString();

    // Check the edittext is empty or not
    if (s1.equals("")) {
        Toast.makeText(getActivity(), "Please Enter Any Text", Toast.LENGTH_SHORT).show();
        return false;
    }

    // Check the Group is available or not
    Cursor groupCursor = null;
    String[] GROUP_PROJECTION = new String[] {
        ContactsContract.Groups._ID, ContactsContract.Groups.TITLE
    };
    groupCursor = getActivity().managedQuery(ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, ContactsContract.Groups.TITLE + "=?", new String[] {s1}, ContactsContract.Groups.TITLE + " ASC");
    Log.d("*** Here Counts: ", "** " + groupCursor.getCount());
    if (groupCursor.getCount() > 0) {
        Toast.makeText(getActivity(), "Group is already available", Toast.LENGTH_SHORT).show();
        return false;
    } else {
        //  Toast.makeText(Create_Group_Main_Page.this, "Not available", Toast.LENGTH_SHORT).show();
        //  Here we create a new Group
        try {
            ContentValues groupValues = null;
            ContentResolver cr = getActivity().getContentResolver();
            groupValues = new ContentValues();
            groupValues.put(ContactsContract.Groups.TITLE, s1);
            cr.insert(ContactsContract.Groups.CONTENT_URI, groupValues);
            Log.d("########### Group Creation Finished :", "###### Success");
        } catch (Exception e) {
            Log.d("########### Exception :", "" + e.getMessage());
            return false;
        }

    }

    groupCursor.close();
    groupCursor = null;

    Log.d(" **** Contacts add to Groups...", "**** Fine");

    String groupID = null;
    Cursor getGroupID_Cursor = null;
    getGroupID_Cursor = getActivity().managedQuery(ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, ContactsContract.Groups.TITLE + "=?", new String[] {s1}, null);
    Log.d("**** Now Empty Cursor size:", "** " + getGroupID_Cursor.getCount());
    getGroupID_Cursor.moveToFirst();
    groupID = (getGroupID_Cursor.getString(getGroupID_Cursor.getColumnIndex("_id")));
    Log.d(" **** Group ID is: ", "** " + groupID);

    getGroupID_Cursor.close();
    getGroupID_Cursor = null;


    for (int i = 0; i < InteractiveArrayAdapter.list.size(); i++) {
        if (InteractiveArrayAdapter.list.get(i).isSelected()) {
            cursor.moveToPosition(i);
            String contactID = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));

            long contact = Long.parseLong(contactID);
            long group = Long.parseLong(groupID);

            addToGroup(contact, group);

            String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            Log.d(" **** Contact Added: ", "* :" + name);
        }
    }
    return true;


}

关于android - 在android中创建gmail联系人组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29210799/

有关android - 在android中创建gmail联系人组的更多相关文章

  1. ruby-on-rails - Rails - 从另一个模型中创建一个模型的实例 - 2

    我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案

  2. ruby - 如何在 Ruby 中创建无类 DSL? - 2

    我正在尝试找出如何为我的Ruby项目创建一种“无类DSL”,类似于在Cucumber步骤定义文件中定义步骤定义或在Sinatra应用程序中定义路由。例如,我想要一个文件,其中调用了我的所有DSL函数:#sample.rbwhen_string_matches/hello(.+)/do|name|call_another_method(name)end我认为用我的项目特有的一堆方法污染全局(内核)命名空间是一种不好的做法。因此方法when_string_matches和call_another_method将在我的库中定义,并且sample.rb文件将以某种方式在我的DSL方法的上下文中

  3. ruby-on-rails - 如何在 Rails 3 中创建自定义脚手架生成器? - 2

    有这些railscast。http://railscasts.com/episodes/218-making-generators-in-rails-3有了这个,你就会知道如何创建样式表和脚手架生成器。http://railscasts.com/episodes/216-generators-in-rails-3通过这个,您可以了解如何添加一些文件来修改脚手架View。我想把两者结合起来。我想创建一个生成器,它也可以创建脚手架View。有点像RyanBates漂亮的生成器或web_app_themegem(https://github.com/pilu/web-app-theme)。我

  4. ruby - 为什么在 ruby​​ 中创建 Rational 不需要新方法 - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rubysyntaxquestion:Rational(a,b)andRational.new!(a,b)我正在阅读ruby镐书,我对创建有理数的语法感到困惑。Rational(3,4)*Rational(1,2)产生=>3/8为什么Rational不需要new方法(我还注意到例如我可以在没有new方法的情况下创建字符串)?

  5. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  6. ruby - 在 Ruby 中创建按公共(public)键值分组的新哈希 - 2

    假设我有一个在Ruby中看起来像这样的哈希:{:ie0=>"Hi",:ex0=>"Hey",:eg0=>"Howdy",:ie1=>"Hello",:ex1=>"Greetings",:eg1=>"Goodday"}有什么好的方法可以将它变成如下内容:{"0"=>{"ie"=>"Hi","ex"=>"Hey","eg"=>"Howdy"},"1"=>{"ie"=>"Hello","ex"=>"Greetings","eg"=>"Goodday"}} 最佳答案 您要求一个好的方法来做到这一点,所以答案是:一种您或同事可以在六个月后理解

  7. ruby-on-rails - 在 Rails 中创建自定义方法 - 2

    我正在尝试找到解决此问题的好方法。假设我有一个包含帖子、标题和不同状态ID的表格。在我的Controller索引中,我有:@posts=Post.all然后在我的模型中我有:defcheck_status(posts)posts.eachdo|post|#logichereendend所以在我的Controller中我有:@posts.check_status(@posts)但我在加载索引时遇到以下错误:undefinedmethodcheck_statusfor有什么想法吗? 最佳答案 它应该是一个类方法,以self.为前缀:de

  8. ruby-on-rails - 为什么我不能在 Rails 的表格中创建一个数组作为列? - 2

    为什么我不能这样做:classCreateModels是否有其他方法可以使数组(“apples”)成为Fruit类实例的属性? 最佳答案 在Rails4中并使用PostgreSQL,您实际上可以在数据库中使用数组类型:迁移:classCreateSomething 关于ruby-on-rails-为什么我不能在Rails的表格中创建一个数组作为列?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

  9. ruby-on-rails - 如何在 Rails 5 中创建 ActiveRecord 无表模型? - 2

    我尝试创建新模型,该模型在数据库中没有表的情况下具有自动类型转换。我试图从ActiveRecord::Base继承它抛出异常ActiveRecord::StatementInvalid:PG::UndefinedTable:ERROR:relation"people"doesnotexist类实现:classPerson堆栈跟踪:ActiveRecord::StatementInvalid:PG::UndefinedTable:ERROR:relation"people"doesnotexistLINE8:WHEREa.attrelid='"people"'::regclass^:SE

  10. ruby-on-rails - 如何在 ruby​​ on rails 中为 gmail 联系人创建访问 token - 2

    我正在使用Omniauth请求用户gmail凭据,因此我可以稍后请求用户friend/联系人。现在,我正在使用身份验证请求为我生成的访问token,在OmniauthCallbacksController中获取好友列表。像这样classUsers::OmniauthCallbacksController如何使用存储在数据库中的凭据创建新的访问token,以便从不同的Controller调用googleAPI? 最佳答案 从here获取您的client_id和client_secret|.这是一个粗略的脚本,可以很好地工作。根据您的需

随机推荐