Управлять обновлением из apk программно - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь обновить приложение в Google Glass программным способом, но каждый раз выдает следующее сообщение об ошибке:

Failed to find configured root that contains /storage/emulated/0/Android/data/com.bp2go.glassapkupdater/files/Pictures/apks/app-release.apk

Manifest.xml

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

My provider_paths.xml:

<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="apks" path="Android/data/com.bp2go.glassapkupdater/Pictures/apks"/>

и мой метод для вызова apk:

var path_apk = getExternalFilesDir(Environment.DIRECTORY_PICTURES).toString()+"/apks/"
val fileName = "app-release.apk"
val path_to_apk = path_apk+fileName

val intent = Intent(Intent.ACTION_INSTALL_PACKAGE)
intent.setDataAndType(FileProvider.getUriForFile(this, "com.bp2go.glassapkupdater.fileprovider", File(path_to_apk)), "application/vnd.android.package-archive")
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
startActivity(intent)

, но когда я использую следующие строки:

val intent = Intent(Intent.ACTION_INSTALL_PACKAGE)
intent.setDataAndType(Uri.fromFile(outputFile),
            "application/vnd.android.package-archive")
startActivity(intent)

Я получил следующую ошибку приначало:

"There was a problem parsing the package".

.apk находится во внутреннем хранилище в Pictures / apks /, не имеет внешнего хранилища на Google Glass.Что я делаю не так?

...