मैं का उपयोग कर रहा हूँ साझा भंडारण लिखने के लिए एक पीडीएफ फाइल. फ़ाइल बनाई गई है लेकिन यह है की 0 बाइट्स है । करने में सक्षम नहीं है क्या समझते हैं इस मुद्दे को.
नीचे है मेरे कोड
ACTION_CREATE_DOCUMENT
fun saveFile() { val exportIntent = Intent(Intent.ACTION_CREATE_DOCUMENT) exportIntent.addCategory(Intent.CATEGORY_OPENABLE) exportIntent.type = "application/pdf" val filename = "test.pdf" exportIntent.putExtra(Intent.EXTRA_TITLE, filename) startForResult.launch(exportIntent) }
गतिविधि का परिणाम
private val MEGABYTE = 1024 * 1024 val startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult -> if (result.resultCode == Activity.RESULT_OK) { val intent = result.data if (intent?.data != null) { val uri: Uri = intent.data!! GlobalScope.launch { writeFile(uri) } } } }
फ़ाइल लिखने की विधि
fun writeFile(uri:Uri){ val outputStream: OutputStream? = requireContext().contentResolver.openOutputStream(uri) if (outputStream != null) { val url = URL(some url) val urlConnection: HttpURLConnection = url.openConnection() as HttpURLConnection urlConnection.setRequestMethod("GET") urlConnection.setDoOutput(true) urlConnection.connect() val inputStream: InputStream = urlConnection.getInputStream() val buffer = ByteArray(MEGABYTE) var bufferLength = 0 while (inputStream.read(buffer).also { bufferLength = it } > 0) { outputStream.write(buffer, 0, bufferLength) } outputStream.close() } }