获取手机联系人权限
<!--添加获取手机联系人的权限-->
<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);
}
});
来源:CSDN
作者:weixin_46361828
链接:https://blog.csdn.net/weixin_46361828/article/details/104641416