content://telephony/siminfo使用权限
时间: 2023-07-05 14:32:00 浏览: 99
使用`content://telephony/siminfo`需要在AndroidManifest.xml文件中添加以下权限:
```
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
```
这个权限允许您读取电话状态和身份识别码(IMSI、ICCID等)。
请注意,从 Android 10 开始,访问 `content://telephony/siminfo` 已被视为受限制的非公开API,因此您的应用程序需要具有特殊的权限或设备必须处于特殊模式下,以便访问它。如果您的应用程序需要使用这些API,请参考Android官方文档以获取更多信息。
相关问题
packages/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java
引用中提到的文件路径 "packages/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java" 是一个Java文件的路径。这个文件位于TelephonyProvider这个应用程序的源代码目录中。TelephonyProvider是一个提供与电话功能相关的服务和功能的Android系统应用程序。这个Java文件可能包含了TelephonyProvider应用程序的具体实现代码,用于实现电话服务的各种功能,比如拨号、呼叫记录、短信等。该文件的具体内容需要查看代码才能确定。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Android N TelephonyProvider及数据库初始化](https://blog.csdn.net/weixin_39541189/article/details/118173124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [【Adb shell】---玩转 Android系统 查询 应用包名 命令](https://blog.csdn.net/weixin_29994587/article/details/117484818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
bool ringActiveLocally = outputs.isActiveLocally(toVolumeSource(AUDIO_STREAM_RING), 0); // - for STRATEGY_SONIFICATION and ringtone active: // if SPEAKER was selected, and SPEAKER_SAFE is available, use SPEAKER_SAFE instead // - for STRATEGY_SONIFICATION_RESPECTFUL: // if no media is playing on the device, check for mandatory use of "safe" speaker // when media would have played on speaker, and the safe speaker path is available if (strategy == STRATEGY_SONIFICATION || ringActiveLocally || (strategy == STRATEGY_SONIFICATION_RESPECTFUL && !mediaActiveLocally)) { devices.replaceDevicesByType( AUDIO_DEVICE_OUT_SPEAKER, availableOutputDevices.getDevicesFromType( AUDIO_DEVICE_OUT_SPEAKER_SAFE)); } } break; case STRATEGY_CALL_ASSISTANT: devices = availableOutputDevices.getDevicesFromType(AUDIO_DEVICE_OUT_TELEPHONY_TX); break; case STRATEGY_NONE: // Happens when internal strategies are processed ("rerouting", "patch"...) break; default: ALOGW("%s unknown strategy: %d", __func__, strategy); break;
这段代码是关于选择输出设备的具体实现。首先,代码会根据当前的策略类型(`strategy`)和铃声是否正在播放(`ringActiveLocally`),选择是否要使用“safe”扬声器。如果当前策略是`STRATEGY_SONIFICATION`或者铃声正在播放,那么会尝试使用“safe”扬声器来输出声音,这是为了避免铃声等声音过大,导致设备损坏。其次,如果当前策略是`STRATEGY_SONIFICATION_RESPECTFUL`,并且没有其他媒体正在播放,那么也会尝试使用“safe”扬声器来输出声音。最后,根据不同的策略类型,会选择不同的输出设备。如果当前策略是`STRATEGY_CALL_ASSISTANT`,则会选择电话扬声器(`AUDIO_DEVICE_OUT_TELEPHONY_TX`),如果是`STRATEGY_NONE`,则不需要进行任何操作。如果策略类型不是以上任何一种,则会输出一个警告信息。