INSTALL_FAILED_DUPLICATE_PERMISSION с Samsung Galaxy S8

Я впервые пытаюсь установить приложение на свой новый Samsung Galaxy S8 из Android Studio. Когда я это сделаю, я получаю следующее сообщение об ошибке:

Ошибка установки с сообщением Не удалось завершить сеанс: INSTALL_FAILED_DUPLICATE_PERMISSION: Пакет bbct.android пытается повторно объявить разрешение bbct.android.lite.permission.READ, уже принадлежащее com.samsung.android.bixby.agent.

Почему Биксби владеет моим разрешением? Что еще более важно, как мне это исправить?


person Code-Apprentice    schedule 04.02.2018    source источник
comment
Почему Биксби владеет моим разрешением? - это определенно кажется странным для приложения Samsung. Загрузите приложение Информация о приложениях и посмотрите, сможете ли вы найти манифест для com.samsung.android.bixby.agent. В зависимости от ошибки у них должен быть элемент <permission>, объявляющий bbct.android.lite.permission.READ.   -  person CommonsWare    schedule 04.02.2018
comment
@CommonsWare Возможно ли, что агент Bixby контролирует все разрешения, и что мне придется перепрыгивать через некоторые обручи с Samsung, чтобы зарегистрировать или иным образом запросить право собственности на разрешение?   -  person Code-Apprentice    schedule 04.02.2018
comment
Информация о приложениях @CommonsWare показывает, что com.samsung.android.bixby.agent действительно имеет разрешение bbct.android.lite.permission.READ,   -  person Code-Apprentice    schedule 04.02.2018
comment
Возможно ли, что Биксби «извлекает» данные из вашего приложения, чтобы сообщить об этом пользователю? Если да, то это вполне может быть исторический обходной путь, который они применили. Раньше мне приходилось делать это с моими приложениями и Tasker. См. Мой вопрос здесь для возможного объяснения - stackoverflow.com/q/38234034/1256219 Даже если они удалят его, это может остаются проблемой для тех, кто не обновляется. Возможно, вам придется подумать о переименовании вашего разрешения ....   -  person brandall    schedule 04.02.2018
comment
@brandall Разве для этого не нужно только запрашивать разрешение, а не объявлять его?   -  person Code-Apprentice    schedule 04.02.2018
comment
Если ваше приложение установлено после Bixby, что, как я предполагаю, будет (поскольку Bixby предустановлен?), Разрешение не будет предоставлено из-за проблемы с порядком установки, которая все еще поражает Android (ссылки в сообщении, упомянутом выше). Объявление вашего разрешения обошло бы это API ‹21. Но, учитывая, что Bixby - новое приложение, это кажется маловероятным, если только это не что-то, что ускользнуло от их старой тестовой сборки. Даже в этом случае все это кажется маловероятным! Пожалуйста, доложите, если вы дойдете до сути - я заинтригован ....   -  person brandall    schedule 05.02.2018
comment
@brandall См. комментарии и ответы CommonsWare. Bixby Voice - это OEM-приложение на устройствах Samsung, аналогичное Siri от Apple. Он объявляет разрешение с именем bbct.android.lite.permission.READ, которое идентично тому, которое я пытаюсь объявить. Похоже, мне придется изменить свое имя разрешения.   -  person Code-Apprentice    schedule 05.02.2018
comment
Да, я понял! Я просто пытался предложить какое-то возможное объяснение того, почему они объявляют это (исторически) Issueetracker.google. ru / issues / 36941003   -  person brandall    schedule 05.02.2018
comment
@brandall Чтобы уточнить, Биксби объявляет разрешение, а не запрашивает его. Мое приложение также объявляет это, что вызывает ошибку при установке моего приложения.   -  person Code-Apprentice    schedule 05.02.2018
comment
Да я на 100% понимаю! Как и в случае со ссылками, которые я предоставил (и ссылками внутри них), единственная причина, по которой я могу предположить, что они объявят об этом, - это исторически автоматическое предоставление Биксби вашего разрешение на API ‹21. Это была ужасная ошибка / обходной путь, с которым @CommonsWare хорошо знаком.   -  person brandall    schedule 05.02.2018
comment
@brandall Похоже, что наиболее вероятное объяснение - разработчик из Samsung позаимствовал отсюда мой код.   -  person Code-Apprentice    schedule 05.02.2018


Ответы (2)


Я запустил свой Galaxy S8, установил приложение «Информация о приложениях» и нашел com.samsung.android.bixby.agent он указан как "Bixby Voice".

По какой-то причине в их манифесте есть элемент <permission> для bbct.android.lite.permission.READ. Это единственное разрешение не com.samsung, которое я вижу для этого приложения.

С другой стороны: Samsung знает, кто вы!

С другой стороны, вы довольно хорошо облажались.

Помимо переключения на другое имя разрешения, ваше приложение никогда не сможет быть установлено на Galaxy S8 или любом другом устройстве Samsung, на котором есть это приложение Bixby (и работает под управлением Android 5.0+, хотя я думаю, что Bixby предназначен только для более новых устройств) . Два приложения не могут объявить одно и то же разрешение на одном устройстве на Android 5.0+, если они не подписаны одним и тем же ключом подписи, и предположительно ваше - нет.

(Мне любопытно, как это произошло, это это приложение ? Это открытый исходный код?)

person CommonsWare    schedule 04.02.2018
comment
Да, это мое приложение. Источник находится на GitHub по адресу github.com/BaseballCardTracker/bbct. - person Code-Apprentice; 04.02.2018
comment
@ Code-Apprentice: Их разрешение не signature и отсутствует описание или ярлык. Я не знаю, почему он там, и кажется маловероятным, что они скопировали ваш код. В то же время я не могу объяснить, почему это конкретное имя разрешения может понадобиться этому приложению и почему оно не входит в их стандартное пространство имен com.samsung. - person CommonsWare; 04.02.2018
comment
Имя моего разрешения показано в этом вопросе SO. Возможно, кто-то в Samsung позаимствовал фрагмент кода при реализации разрешений в Bixby. - person Code-Apprentice; 05.02.2018

Похоже, что разработчик в Samsung позаимствовал код из другого вопроса SO, который я написал много лет назад: Запрос разрешения на чтение у моего ContentProvider в другом приложении. Этот вопрос изначально содержал имя разрешения, которое я использовал в своем приложении. У меня есть известия от других участников SO, что это будет исправлено в следующем обновлении Bixby.

person Code-Apprentice    schedule 11.02.2018