У меня есть кросс-скомпилированный бинарный файл для Android, и я хочу запустить его с runtime.exec
Но после его загрузки в приложение указывается c хранилище (в мой случай storage/emulated/0/Android/data/com.example.sampleApp/files/binary/sample
) Я не могу установить для него разрешение с помощью setExecutabe
, что делает невозможным его запуск.
Также adb shell chomd +x storage/emulated/0/Android/data/com.example.sampleApp/files/binary/sample
также не работает.
В AndroidManifest.xml
У меня уже есть объявленное разрешение:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
После загрузки file.setExecutable(true)
просто возвращает false; и разрешение по-прежнему -rw-rw----
. Код моей загрузки, вероятно, связан здесь:
val request = DownloadManager.Request(uri)
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE or DownloadManager.Request.NETWORK_WIFI)
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
request.setMimeType("application/octet-stream")
request.setTitle("Downloading binary")
request.allowScanningByMediaScanner()
request.setDestinationInExternalFilesDir(
this,
null,
"binary/sample"
)
(getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager).euqueue(request)