В настоящее время я пишу приложение (приложение A), которое зависит от данных другого приложения (приложение B).
Будучи новичком в Android, я думал, что единственный способ включить это — использовать ContentProvider
и выполнить запрос.
Как бы то ни было, текущий способ сделать это проблематичен, потому что приложение B имеет другую подпись, чем та, которую мы используем для приложения A. Это означает:
- The only way we can get our apps to talk to each other is to send our apk on a signing server so that it is also signed with the same key used for App B
- This process is not automated, so it is therefore time-inefficient (takes around 2 - 4 mins).
- Это также означает, что мы не можем устанавливать точки отладки, что причиняет нам много боли при попытке увидеть, какие именно данные возвращаются
ContentProvider
Я провел дополнительное исследование, и мой коллега сказал, что вместо того, чтобы подписывать наш apk каждый раз, когда мы вносим небольшое изменение, мы можем извлечь apk приложения B и подписать его нашим ключом только один раз.
Это привело меня к созданию хранилища ключей и ключа для моей команды, которые я использовал для повторной подписи apk приложения B и переустановки его на нашем тестовом устройстве. Затем я настроил свою Android Studio на автоматическую подпись отладочных версий приложения A с помощью того же самого ключа. Проблема в том, что, к сожалению, ничего не изменилось... Это всегда заканчивается следующим исключением:
Failed to find provider info for com.App.B.provider
(в основном та же ошибка возникает, когда мы используем apk приложения B по умолчанию, не отправляя apk приложения A на сервер подписи)
Просто хочу отметить, если вам интересно, отправка apk приложения А на подписывающий сервер и его запуск действительно работает, и мы получаем данные из ContentProvider
Так что да, я больше не знаю, что делать... Есть идеи? Кроме того, поскольку я не уверен, что имею представление о том, что делаю, любое объяснение того, как все это должно происходить, будет очень кстати!