当前位置:实例文章 » JAVA Web实例» [文章]到Android 10系统为止所有的危险权限

到Android 10系统为止所有的危险权限

发布人:shili8 发布时间:2025-02-23 00:57 阅读次数:0

**Android10 系统之前的危险权限**

在 Android10 之前,Android 系统中存在着许多危险权限,这些权限允许应用程序访问用户的敏感信息或执行特定的操作。这些危险权限被分为以下几类:

### **1. 通讯权限**

* `READ_PHONE_STATE`:读取电话状态,包括电话号码、运营商等信息。

java//申请 READ_PHONE_STATE 权限
// 使用 READ_PHONE_STATE 权限TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = tm.getLine1Number();

* `CALL_PHONE`:拨打电话。
java//申请 CALL_PHONE 权限
// 使用 CALL_PHONE 权限Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:10086"));
startActivity(intent);

* `SEND_SMS`:发送短信。
java//申请 SEND_SMS 权限
// 使用 SEND_SMS 权限SmsManager sms = SmsManager.getDefault();
String phoneNumber = "10086";
String message = "Hello, world!";
sms.sendTextMessage(phoneNumber, null, message, null, null);

* `RECEIVE_SMS`:接收短信。
java//申请 RECEIVE_SMS 权限
// 使用 RECEIVE_SMS 权限SmsManager sms = SmsManager.getDefault();
sms.listen(new SmsListener() {
 @Override public void onReceive(Context context, Object obj) {
 Bundle bundle = (Bundle) obj;
 String phoneNumber = bundle.getString("pdus")[0].toString();
 String message = bundle.getString("pdus")[1].toString();
 // 处理短信 }
});

* `READ_SMS`:读取短信。
java//申请 READ_SMS 权限
// 使用 READ_SMS 权限SmsManager sms = SmsManager.getDefault();
String phoneNumber = "10086";
String message = "Hello, world!";
sms.sendTextMessage(phoneNumber, null, message, null, null);


### **2. 存储权限**

* `READ_EXTERNAL_STORAGE`:读取外部存储。
java//申请 READ_EXTERNAL_STORAGE 权限
// 使用 READ_EXTERNAL_STORAGE 权限File file = new File("/sdcard/abc.txt");
InputStream inputStream = new FileInputStream(file);

* `WRITE_EXTERNAL_STORAGE`:写入外部存储。
java//申请 WRITE_EXTERNAL_STORAGE 权限
// 使用 WRITE_EXTERNAL_STORAGE 权限File file = new File("/sdcard/abc.txt");
OutputStream outputStream = new FileOutputStream(file);


### **3.位置权限**

* `ACCESS_FINE_LOCATION`:访问精确的位置。
java//申请 ACCESS_FINE_LOCATION 权限
// 使用 ACCESS_FINE_LOCATION 权限LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,1, new LocationListener() {
 @Override public void onLocationChanged(Location location) {
 // 处理位置信息 }
});

* `ACCESS_COARSE_LOCATION`:访问粗略的位置。
java//申请 ACCESS_COARSE_LOCATION 权限
// 使用 ACCESS_COARSE_LOCATION 权限LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,1, new LocationListener() {
 @Override public void onLocationChanged(Location location) {
 // 处理位置信息 }
});


### **4.摄像头权限**

* `CAMERA`:访问摄像头。
java//申请 CAMERA 权限
// 使用 CAMERA 权限Camera camera = Camera.open();
camera.takePicture(new Camera.ShutterCallback() {
 @Override public void onShutter() {
 // 处理照片 }
}, new Camera.PictureCallback() {
 @Override public void onPictureTaken(byte[] data, Camera camera) {
 // 处理照片 }
});


### **5.其他权限**

* `GET_ACCOUNTS`:访问账户信息。
java//申请 GET_ACCOUNTS 权限
// 使用 GET_ACCOUNTS 权限AccountManager accountManager = AccountManager.get(this);
String[] accounts = accountManager.getAccounts();

* `READ_CONTACTS`:读取联系人信息。
java//申请 READ_CONTACTS 权限
// 使用 READ_CONTACTS 权限ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

* `WRITE_CONTACTS`:写入联系人信息。
java//申请 WRITE_CONTACTS 权限
// 使用 WRITE_CONTACTS 权限ContentResolver contentResolver = getContentResolver();
Uri uri = ContactsContract.Contacts.CONTENT_URI;
 ContentValues contentValues = new ContentValues();
contentValues.put(ContactsContract.Contacts.NAME, "John Doe");
contentResolver.insert(uri, contentValues);

* `RECORD_AUDIO`:访问录音功能。
java//申请 RECORD_AUDIO 权限
// 使用 RECORD_AUDIO 权限MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

* `READ_CLIPBOARD`:读取剪贴板信息。
java//申请 READ_CLIPBOARD 权限
// 使用 READ_CLIPBOARD 权限ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
String text = clipboardManager.getText();

* `WRITE_CLIPBOARD`:写入剪贴板信息。
java//申请 WRITE_CLIPBOARD 权限
// 使用 WRITE_CLIPBOARD 权限ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
String text = "Hello, world!";
clipboardManager.setText(text);

* `BLUETOOTH`:访问蓝牙功能。
java//申请 BLUETOOTH 权限
// 使用 BLUETOOTH 权限BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.startDiscovery();

* `BLUETOOTH_ADMIN`:访问蓝牙管理功能。
java//申请 BLUETOOTH_ADMIN 权限
// 使用 BLUETOOTH_ADMIN 权限BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.disable();

* `WAKE_LOCK`:访问唤醒锁功能。
java//申请 WAKE_LOCK 权限
// 使用 WAKE_LOCK 权限PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
powerManager.wakeLock.acquire();

* `VIBRATE`:访问振动功能。
java//申请 VIBRATE 权限
// 使用 VIBRATE 权限Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);

* `INTERNET`:访问网络功能。
java//申请 INTERNET 权限
// 使用 INTERNET 权限URL url = new URL(" />HttpURLConnection connection = (HttpURLConnection) url.openConnection();

* `ACCESS_NETWORK_STATE`:访问网络状态功能。
java//申请 ACCESS_NETWORK_STATE 权限
// 使用 ACCESS_NETWORK

相关标签:android
其他信息

其他资源

Top