Open cl136787252 opened 8 months ago
`class MainFragment : Fragment() {
private var _binding: FragmentMainBinding? = null private val binding get() = _binding!! override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { _binding = FragmentMainBinding.inflate(inflater, container, false) return binding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState)
// val context = context!! binding.makeRequestBtn.setOnClickListener { val requestPermissions: List = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){ listOf( Manifest.permission.READ_MEDIA_AUDIO, Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.READ_MEDIA_VIDEO, Manifest.permission.WRITE_EXTERNAL_STORAGE ) }else{ listOf( Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE ) }
PermissionX.init(this)
// .permissions( // Manifest.permission.CAMERA, // Manifest.permission.ACCESS_FINE_LOCATION, // Manifest.permission.RECORD_AUDIO, //// Manifest.permission.READ_CALENDAR, //// Manifest.permission.READ_CALL_LOG, //// Manifest.permission.READ_CONTACTS, //// Manifest.permission.READ_PHONE_STATE, //// Manifest.permission.BODY_SENSORS, //// Manifest.permission.ACTIVITY_RECOGNITION, //// Manifest.permission.SEND_SMS, //// Manifest.permission.READ_EXTERNAL_STORAGE // ) .permissions(requestPermissions) .setDialogTintColor(Color.parseColor("#1972e8"), Color.parseColor("#8ab6f5")) .onExplainRequestReason { scope, deniedList, beforeRequest -> val message = "PermissionX needs following permissions to continue" scope.showRequestReasonDialog(deniedList, message, "Allow", "Deny") // val message = "Please allow the following permissions in settings" // val dialog = CustomDialogFragment(message, deniedList) // scope.showRequestReasonDialog(dialog) } .onForwardToSettings { scope, deniedList -> val message = "Please allow following permissions in settings" scope.showForwardToSettingsDialog(deniedList, message, "Allow", "Deny") } .request { allGranted, grantedList, deniedList -> if (allGranted) { Toast.makeText(activity, "All permissions are granted", Toast.LENGTH_SHORT).show() } else { Toast.makeText(activity, "The following permissions are denied:$deniedList", Toast.LENGTH_SHORT).show() } } } }
override fun onDestroyView() { super.onDestroyView() _binding = null }
}
`
用一加的手机升级到ColorOS系统。android版本是13,申请SD卡读写读写权限,读的权限都能正常授权,就是WRITE_EXTERNAL_STORAGE一直授权不通过,我反复验证其他android13的手机。SD卡的读写权限都能成功授权。
WRITE_EXTERNAL_STORAGE这个权限在13已经被摈弃了,不让申请了 可以去搜搜MANAGE_EXTERNAL_STORAGE跟ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
`class MainFragment : Fragment() {
// val context = context!! binding.makeRequestBtn.setOnClickListener { val requestPermissions: List = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
listOf(
Manifest.permission.READ_MEDIA_AUDIO,
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.READ_MEDIA_VIDEO,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
}else{
listOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
}
// .permissions( // Manifest.permission.CAMERA, // Manifest.permission.ACCESS_FINE_LOCATION, // Manifest.permission.RECORD_AUDIO, //// Manifest.permission.READ_CALENDAR, //// Manifest.permission.READ_CALL_LOG, //// Manifest.permission.READ_CONTACTS, //// Manifest.permission.READ_PHONE_STATE, //// Manifest.permission.BODY_SENSORS, //// Manifest.permission.ACTIVITY_RECOGNITION, //// Manifest.permission.SEND_SMS, //// Manifest.permission.READ_EXTERNAL_STORAGE // ) .permissions(requestPermissions) .setDialogTintColor(Color.parseColor("#1972e8"), Color.parseColor("#8ab6f5")) .onExplainRequestReason { scope, deniedList, beforeRequest -> val message = "PermissionX needs following permissions to continue" scope.showRequestReasonDialog(deniedList, message, "Allow", "Deny") // val message = "Please allow the following permissions in settings" // val dialog = CustomDialogFragment(message, deniedList) // scope.showRequestReasonDialog(dialog) } .onForwardToSettings { scope, deniedList -> val message = "Please allow following permissions in settings" scope.showForwardToSettingsDialog(deniedList, message, "Allow", "Deny") } .request { allGranted, grantedList, deniedList -> if (allGranted) { Toast.makeText(activity, "All permissions are granted", Toast.LENGTH_SHORT).show() } else { Toast.makeText(activity, "The following permissions are denied:$deniedList", Toast.LENGTH_SHORT).show() } } } }
}
`
用一加的手机升级到ColorOS系统。android版本是13,申请SD卡读写读写权限,读的权限都能正常授权,就是WRITE_EXTERNAL_STORAGE一直授权不通过,我反复验证其他android13的手机。SD卡的读写权限都能成功授权。