• Android——ContentProvider


    xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.chenshuai.myapplication.ActivityContentProvider"
        android:orientation="vertical">
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="查询数据"
            android:onClick="chaxun_onclick"/>
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="添加数据"
            android:onClick="tianjia_onclick"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="更新数据"
            android:onClick="gengxin_onclick"/>
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="删除数据"
            android:onClick="shanchu_onclick"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="读取联系人信息"
            android:onClick="duqu_onclick"/>
    
    
    </LinearLayout>

    JAVA

    package com.example.chenshuai.myapplication;
    
    import android.content.ContentResolver;
    import android.content.ContentUris;
    import android.content.ContentValues;
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.ContactsContract;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Toast;
    
    public class ActivityContentProvider extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_activity_content_provider);
    /*
            Intent intent = new Intent(Intent.ACTION_DIAL);
    
            Uri uri = Uri.parse("tel:110");
    
            intent.setData(uri);*/
        }
        public void chaxun_onclick(View view)
        {
            //获得解析器
            ContentResolver contentResolver = getContentResolver();
    
            Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number");
    
            /*contentResolver.update(uri,new ContentValues(),"",new String[]{});
    
            Toast.makeText(ActivityContentProvider.this, "调用内容提供者", Toast.LENGTH_SHORT).show();*/
    
            Cursor cursor = contentResolver.query(uri, null, null, null, null);
    
            while (cursor.moveToNext())
            {
                Toast.makeText(ActivityContentProvider.this, "遍历数据:_id =  "+cursor.getLong(0)+
                        "phone_number= "+cursor.getString(1), Toast.LENGTH_SHORT).show();
            }
    
            cursor.close();
        }
        public void tianjia_onclick(View view)
        {
            //获得解析器
            ContentResolver contentResolver = getContentResolver();
    
            Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number");
    
            /*contentResolver.update(uri,new ContentValues(),"",new String[]{});
    
            Toast.makeText(ActivityContentProvider.this, "调用内容提供者", Toast.LENGTH_SHORT).show();*/
    
            ContentValues c= new ContentValues();
            c.put("phone_number","123456");
    
            uri = contentResolver.insert(uri,c);
    
            long id = ContentUris.parseId(uri);
    
            Toast.makeText(ActivityContentProvider.this, "新数据的id="+id, Toast.LENGTH_SHORT).show();
        }
        public void gengxin_onclick(View view)
        {
            //获得解析器
            ContentResolver contentResolver = getContentResolver();
    
            Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number");
    
            /*contentResolver.update(uri,new ContentValues(),"",new String[]{});
    
            Toast.makeText(ActivityContentProvider.this, "调用内容提供者", Toast.LENGTH_SHORT).show();*/
    
            ContentValues c= new ContentValues();
    
            c.put("phone_number","123456");
    
            int content = contentResolver.update(uri, c, null, null);
    
            Toast.makeText(ActivityContentProvider.this, "返回修改的数据?"+content, Toast.LENGTH_SHORT).show();
        }
        public void shanchu_onclick(View view)
        {
            ContentResolver contentResolver = getContentResolver();
    
            Uri uri = Uri.parse("content://com.example.cheshuai.test.activityhhh1/black_number");
    
            int btn = contentResolver.delete(uri, "_id>?", new String[]{"1"});
    
            Toast.makeText(ActivityContentProvider.this, "删除数据条数"+btn, Toast.LENGTH_SHORT).show();
    
        }
        public void duqu_onclick(View view)
        {
            ContentResolver contentResolver = getContentResolver();
    
            //联系人信息的URI 授权
            //管理联系人的Uri
            //ContactsContract.Contacts.CONTENT_URI
    
            //管理联系人电话的Uri
            //ContactsContract.CommonDataKinds.Phone.CONTENT_URI
            Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null, null);
    
            while(cursor.moveToNext())
            {
                long id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Contacts._ID));
    
                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
    
                Toast.makeText(ActivityContentProvider.this, "数据id= "+id + "数据name= "+name, Toast.LENGTH_SHORT).show();
    
                //通过id查询联系人的电话信息
    
                Cursor cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[]{id +""},null);
    
                while (cursor1.moveToNext())
                {
                    String phone = cursor1.getString(cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    
                    Toast.makeText(ActivityContentProvider.this, "电话信息= "+ phone, Toast.LENGTH_SHORT).show();
    
    
                }
                cursor1.close();
            }
            cursor.close();
    
        }
    
    }
    manifest
    <!-- 读取联系人权限 -->
        <uses-permission android:name="android.permission.READ_CONTACTS" />
    
            <provider
                android:name=".MyContentProvider"
                android:authorities="com.example.cheshuai.test.activityhhh1"
                android:enabled="true"
                android:exported="true" />
  • 相关阅读:
    每天一个linux命令(40):wc命令
    每天一个linux命令(39):grep 命令
    每天一个linux命令(38):cal 命令
    每天一个linux命令(37):date命令
    每天一个linux命令(36):diff 命令
    每天一个linux命令(35):ln 命令
    [android] Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化
    Android onConfigurationChanged 不执行
    faster-rcnn anchor 介绍
    Faster-rcnn centos tensorflow
  • 原文地址:https://www.cnblogs.com/Chenshuai7/p/5454075.html
Copyright © 2020-2023  润新知