第十一天

扶醉桌前 提交于 2020-03-04 03:47:14

获取手机联系人权限

<!--添加获取手机联系人的权限-->
    <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>

点击获取权限

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS, Manifest.permission.READ_CONTACTS}, 100);

                } else {
                    resolverMethod();
                }
 private void resolverMethod() {
        ContentResolver contentResolver = getContentResolver();
        Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
        String[] strings = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,//姓名
                ContactsContract.CommonDataKinds.Phone.NUMBER};//电话
        Cursor query = contentResolver.query(uri, strings, null, null, null);
        while (query.moveToNext()) {
            String name = query.getString(query.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String number = query.getString(query.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            Toast.makeText(MainActivity.this, name + number, Toast.LENGTH_SHORT).show();

        }

    }

获取手机短信权限

<!--添加获取手机短信的权限-->
    <uses-permission android:name="android.permission.READ_SMS" />
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{Manifest.permission.READ_SMS, Manifest.permission.SEND_SMS}, 101);
                } else {
                    smsMethod();
                }
private void smsMethod() {
        ContentResolver resolver = getContentResolver();
        Uri uri = Telephony.Sms.CONTENT_URI;
        String[] strs = {Telephony.Sms.BODY, Telephony.Sms.ADDRESS};
        Cursor cursor = resolver.query(uri, strs, null, null, null);
        while (cursor.moveToNext()) {
            String address = cursor.getString(cursor.getColumnIndex(Telephony.Sms.ADDRESS));
            String body = cursor.getString(cursor.getColumnIndex(Telephony.Sms.BODY));
        }
    }

获取手机图片权限

<!--读写sd卡的权限     获取手机所有图片/音乐/视频-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 102);
                } else {
                    picMethod();
                }
 private void picMethod() {
        ContentResolver contentResolver = getContentResolver();
        //参数一 URI
        Uri uri1 = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;//图库的URI
        Cursor cursor = contentResolver.query(uri1, null, null, null, null);
        while (cursor.moveToNext()) {
            //字段
            String title = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.TITLE));
            //图片的地址
            String data = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
            int height = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Media.HEIGHT));
            int width = cursor.getInt(cursor.getColumnIndex(MediaStore.Images.Media.WIDTH));
            long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media.SIZE));

        }
    }

获取手机上音乐的权限

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 103);
                } else {
                    musicMethod();
                }
private void musicMethod() {
        ContentResolver contentResolver = getContentResolver();
        //参数一 URI
        Uri uri1 = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;//音乐的URI
        Cursor cursor = contentResolver.query(uri1, null, null, null, null);
        while (cursor.moveToNext()) {
            //字段
            String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
            //地址
            String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
            //歌手
            String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
            //时长
            long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
            long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));

        }
    }

获取手机的视频权限

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 104);
                } else {
                    videoMethod();
                }
private void videoMethod() {
        ContentResolver contentResolver = getContentResolver();
        //参数一 URI
        Uri uri1 = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;//视频的URI
        Cursor cursor = contentResolver.query(uri1, null, null, null, null);
        while (cursor.moveToNext()) {
            //字段
            String title = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.TITLE));
            String data = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
            String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.ARTIST));
            long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Video.Media.DURATION));
            long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Video.Media.SIZE));
            Log.i("###", "视频: " + title + ":" + data + ":" + artist + ":" + duration + ":" + size);
        }
    }

权限的判断

 @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == 100 & grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            resolverMethod();
        } else if (requestCode == 101 & grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            smsMethod();
        } else if (requestCode == 102 & grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            picMethod();
        } else if (requestCode == 103 & grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            musicMethod();
        }else if (requestCode == 104 & grantResults[0] == PackageManager.PERMISSION_GRANTED){
            videoMethod();
        }
    }

广播

右键>new >other>Broadcast Receiver

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();
        String action = intent.getAction();
        if (action.equals("saber")) {
            Log.i("---", extras.getString("name"));
        } else if (action.equals("archer")) {
            Log.i("---", extras.getString("name"));
        }
    }
}
send = (Button) findViewById(R.id.send);
        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //发送广播
                Intent intent = new Intent();
                intent.setAction("saber");//频道
                Bundle bundle = new Bundle();
                bundle.putString("name", "emiya");//消息内容
                intent.putExtras(bundle);
                sendBroadcast(intent);
            }
        });


        send1 = (Button) findViewById(R.id.send1);
        send1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.setAction("archer");//频道
                Bundle bundle = new Bundle();
                bundle.putString("name", "assassion");
                intent.putExtras(bundle);
                sendBroadcast(intent);
            }
        });
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!