到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