MainActivity.java package com.example.contentproviderdemo;import android.content.pm.PackageManager;import android.database.Cursor;import android.provider.ContactsContract;import android.support.annotation.NonNull;import android.support.v4.a
package com.example.contentproviderdemo; import android.content.pm.PackageManager; import android.database.Cursor; import android.provider.ContactsContract; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; import java.util.List; import java.util.jar.Manifest; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDBOpenHelper myDBOpenHelper=new MyDBOpenHelper(this); myDBOpenHelper.getWritableDatabase(); } }AndroidManifest.xml
MyProvider.java
package com.example.contentproviderdemo; import android.content.ContentProvider; import android.content.ContentValues; import android.content.UriMatcher; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.util.Log; public class MyProvider extends ContentProvider { public static final int SUCCESS = 1; /** * 创建一个匹配器matcher,检查uri的匹配规则,如果uri匹配失败返回-1 */ static UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); static { uriMatcher.addURI("com.example.contentproviderdemo", "account", SUCCESS); } @Override public boolean onCreate() { return false; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { int code = uriMatcher.match(uri); if (code == SUCCESS) { MyDBOpenHelper helper = new MyDBOpenHelper(getContext()); SQLiteDatabase db = helper.getWritableDatabase(); Log.d("Myprovider", "query,查询一条数据"); return db.query("account", projection, selection, selectionArgs, null, null, sortOrder); } else { throw new IllegalArgumentException("匹配失败"); } } @Override public String getType(Uri uri) { return null; } @Override public Uri insert(Uri uri, ContentValues values) { int code = uriMatcher.match(uri); if (code == SUCCESS) { MyDBOpenHelper helper = new MyDBOpenHelper(getContext()); SQLiteDatabase db = helper.getWritableDatabase(); db.insert("account", null, values); Log.d("Myprovider", "insert,添加一条数据"); } else { throw new IllegalArgumentException("匹配失败"); } return null; } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { int code = uriMatcher.match(uri); if (code == SUCCESS) { MyDBOpenHelper helper = new MyDBOpenHelper(getContext()); SQLiteDatabase db = helper.getWritableDatabase(); db.delete("account", selection, selectionArgs); Log.d("Myprovider", "delete,删除一条数据"); } else { throw new IllegalArgumentException("匹配失败"); } return 0; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { int code = uriMatcher.match(uri); if (code == SUCCESS) { MyDBOpenHelper helper = new MyDBOpenHelper(getContext()); SQLiteDatabase db = helper.getWritableDatabase(); db.update("account", values, selection, selectionArgs); Log.d("Myprovider", "updata,更新一条数据"); } else { throw new IllegalArgumentException("匹配失败"); } return 0; } }MainActivity1.java
package com.example.contentproviderdemo; import android.content.pm.PackageManager; import android.database.Cursor; import android.provider.ContactsContract; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; import java.util.List; import java.util.jar.Manifest; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDBOpenHelper myDBOpenHelper=new MyDBOpenHelper(this); myDBOpenHelper.getWritableDatabase(); } }