600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android存储数据---内容提供者ContentProvider

Android存储数据---内容提供者ContentProvider

时间:2020-07-20 19:26:16

相关推荐

Android存储数据---内容提供者ContentProvider

简介

内容提供者的使用

2. 实例

(1)activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg9"android:padding="5dp"android:orientation="vertical"tools:context="puter.app2.MainActivity"><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:background="#FFF5EE"android:text="查看短信"android:textSize="30sp"android:padding="5dp"android:onClick="readsms"/><TextViewandroid:id="@+id/tv_des"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="读到的系统短信如下:"android:textSize="20sp"android:layout_marginTop="10dp"android:visibility="invisible"/><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="#cccccc"android:dividerHeight="1dp"></ListView></LinearLayout>

(2)itemlayout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:orientation="vertical"><TextViewandroid:id="@+id/item_phone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="手机号码"android:textSize="18sp" /><TextViewandroid:id="@+id/item_sms"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="短信内容"android:textSize="16sp" /></LinearLayout>

(3)主函数MainActivity

package puter.app2;import android.Manifest;import android.content.ContentResolver;import android.content.Context;import android.content.pm.PackageManager;import android.database.Cursor;import .Uri;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ListView;import android.widget.ResourceCursorAdapter;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private TextView tvDev;private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvDev = (TextView) findViewById(R.id.tv_des);listView = (ListView) findViewById(R.id.lv);}/*** 读取系统短信* @param v*/public void readsms(View v){//动态申请读取短信的权限int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_SMS);if(permission != PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_SMS},1);return;}//短信的uriUri uri = Uri.parse("content://sms/");//获取内容解析器ContentResolver resolver = this.getContentResolver();Cursor cursor = resolver.query(uri, new String[]{"_id", "address", "date", "type", "body"}, null, null, null);if(cursor !=null && cursor.getCount()>0){tvDev.setVisibility(View.VISIBLE);MyAdapter adapter = new MyAdapter(this,R.layout.itemlayout,cursor);listView.setAdapter(adapter);}}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode){case 1:if(permissions.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED){//拒绝Toast.makeText(MainActivity.this, "需要授权后使用!", Toast.LENGTH_SHORT).show();}else{//允许this.readsms(null);}break;}super.onRequestPermissionsResult(requestCode, permissions, grantResults);}public class MyAdapter extends ResourceCursorAdapter{public MyAdapter(Context context, int layout, Cursor c) {super(context, layout, c, true);}@Overridepublic void bindView(View view, Context context, Cursor cursor) {TextView tvPhone = (TextView) view.findViewById(R.id.item_phone);TextView tvSms = (TextView) view.findViewById(R.id.item_sms);tvPhone.setText(cursor.getString(1));tvSms.setText(cursor.getString(4));}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。