#android #air
#Android #air
Вопрос:
Я разрабатываю игру с использованием Adobe AIR. Я не хочу связывать все время выполнения AIR с моим APK, потому что он становится больше по размеру. Вместо этого я хочу подключиться к запуску приложения и проверить, установлен ли Adobe AIR на устройстве. Если он не установлен, я отправлю пользователя в Google Play для загрузки Adobe AIR.
Моя идея состояла в том, чтобы создать собственное расширение для Android и закодировать процесс на Java непосредственно перед запуском приложения. До сих пор я не мог найти то место, где я могу выполнить проверку. Потому что, как только приложение запускается и не находит установленное приложение AIR, оно выходит из строя с исключением: java.lang.Ошибка UnsatisfiedLinkError: собственный метод не найден: com.adobe.air.AIRWindowSurfaceView.nativeSurfaceCreated:()
Есть идеи?
Ответ №1:
Вы можете использовать getPackageInfo (String packageName, int flags), при условии, что вы знаете имя пакета, следовательно, и приложения, которое вы ищете.
Вот фрагмент кода, который я протестировал, и он работает нормально.
try {
this.getPackageManager().getPackageInfo("com.adobe.air", 0);
//continue if Adobe AIR is installed
Toast.makeText(this,"ADOBE AIR FOUND",Toast.LENGTH_LONG).show();
} catch (PackageManager.NameNotFoundException nameNotFound) {
//measures to be taken if Adobe AIR is not installed
Toast.makeText(this,"ADOBE AIR ABSENT",Toast.LENGTH_LONG).show();
//launches the Play Store listing for Adobe AIR for installation
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.adobe.air"));
startActivity(intent);
}
Помните, что это работает только до тех пор, пока вы знаете название пакета приложения и пока оно остается неизменным.
Редактировать :
У меня нет опыта работы с Adobe AIR, так что от меня было бы мало пользы. Поиск в Google приводит меня к пониманию, что для этого не существует метода, санкционированного Adobe. Тем не менее, я нашел ссылку, которая, похоже, может это сделать, хотя и сильно взломана. Я оставляю это на ваше усмотрение.
Комментарии:
1. Спасибо. Я действительно знаю, как это сделать. Чего я не знаю, так это КУДА поместить этот код sippet. Поскольку я использую Adobe AIR, я не могу получить доступ к методу создания приложения onCreate. Или я могу?
2. У меня было ощущение, что это так. Пожалуйста, посмотрите правку.