Уровень API проверки Xamarin.Android

У меня есть приложение для Android, которое было разработано, скомпилировано и выпущено с использованием опции SDK по умолчанию.

Use Compile using SDK Version

Мне нужно внести дополнения в это приложение, однако я не знаю, на какой SDK он был нацелен на время компиляции, когда последний раз тестировался и выпускался.

Проблема в том, что более поздние уровни API имеют другие требования, такие как изменения авторизации, когда вам нужно запрашивать разрешение у пользователя. Я вижу из кода, что этого не происходит, поэтому это должно быть раньше.

Есть ли способ узнать из исходного кода или предыдущего скомпилированного .apk, какой SDK использовался? У меня нет разрешения обновлять весь код, чтобы добавить все эти изменения авторизации, просто нужно сделать несколько небольших изменений.

2
0
2 234
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно, вы можете добавить свои изменения внутри, если вот так:

if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.**TheVersionYouNeed**) {
   // Your code
}

Это не сработает. Если я компилирую неправильный SDK, например Android API 23, мне нужно будет модернизировать все проверки, чтобы запрашивать разрешения у пользователей для каждого компонента, который использует приложение. Я не могу сделать это. Мне нужно скомпилировать правильный API, используемый предыдущим разработчиком

Lotok 26.03.2018 13:21
Ответ принят как подходящий

.apk - это просто zip-файл, поэтому распакуйте его и просмотрите XML-файл манифеста.

В верхней части файла вы должны найти элемент, в котором может содержит минимальный, целевой и максимальный SDK.

<uses-sdk android:minSdkVersion = "integer"
          android:targetSdkVersion = "integer"
          android:maxSdkVersion = "integer" />

Вы будете искать уровень API targetSdkVersion

re: https://developer.android.com/guide/topics/manifest/uses-sdk-element.html

Похоже, что в скомпилированном apk файл AndroidManifest.xml не является xml. Я просто получаю много символов ascii. Я вижу в источнике, что был установлен только android:minSdkVersion. Возможно, просто нужно сделать немного проб и ошибок

Lotok 26.03.2018 13:39

Другие вопросы по теме