Передача параметров из активности Java в приложение Adobe AIR

Как мы можем передать параметры из действия Java при запуске другого приложения типа AIR?

То, как мы делаем для java-активностей, использует Intent extra. Каков механизм передачи параметров, когда это приложение java Activity и AIR на Android. В настоящее время мы передаем параметры, разделяя общее место (sqlite db) и опрашивая его каждую секунду. Это не очень хороший дизайн, и я уверен, что должен быть какой-то хороший способ сделать это. Пожалуйста, просветите меня.


person ankitjaininfo    schedule 08.04.2011    source источник


Ответы (3)


В Adobe AIR 2.5 вы можете передавать параметры в приложение AIR, используя настраиваемые URI.

С помощью этой функции приложение можно вызывать из браузера или собственного приложения Android. Когда приложение вызывается из браузера/приложения Android, приложению отправляется InvokeEvent. Чтобы сделать приложение вызываемым из браузера, добавьте это в свой дескриптор приложения (как дочерний элемент приложения):

<android>
    <manifestAdditions>
    <![CDATA[
        <manifest>
            <application>
                 <activity>
                     <intent-filter>
                         <action android:name="android.intent.action.MAIN"/>
                         <category android:name="android.intent.category.LAUNCHER"/>
                     </intent-filter>
                     <intent-filter>
                         <action android:name="android.intent.action.VIEW"/>
                         <category android:name="android.intent.category.BROWSABLE"/>
                         <category android:name="android.intent.category.DEFAULT"/>
                         <data android:scheme="testapp"/>
                     </intent-filter>
                 </activity>
             </application>
         </manifest>
     ]]>
     </manifestAdditions>
</android>

Теперь, чтобы запустить приложение из браузера, укажите URL-адрес: testapp://. Пример:

<a href="testapp://">click here to launch air test app from browser</a>

При нажатии на эту ссылку запустится ваше приложение.

Если вы хотите передать дополнительные аргументы вашему приложению из браузера, используйте что-то вроде этого:

<a href="testapp://arg1=value&secondArgument=someValue">click here to launch air test app from browser</a>

Как только ваше приложение будет запущено, извлеките свойство arguments полученного InvokeEvent. Он будет содержать полный URI (testapp://arg1=value&secondArgument=someValue), и вы можете проанализировать его, чтобы извлечь аргументы.

Из здесь.

person Michael    schedule 21.04.2011

В дополнение к приведенному выше ответу, чтобы запустить приложение Adobe Air из приложения для Android с помощью Intent, сделайте следующее:

Intent i = Intent.parseUri("testapp://arguments-to-pass",Intent.URI_INTENT_SCHEME);
i.addCategory(Intent.CATEGORY_BROWSABLE);
i.setComponent(null);
i.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
startActivity(i);
person Jason    schedule 28.08.2011

swf-файлы являются выходными данными mxml , это описанный выше метод передачи значений из андроида в mxml или в .swf . Какие изменения мы должны сделать со стороны .swf или .mxml. Я компилирую mxml на FB (flash Builder) 4.5 и вызываю его из Android eclipse. С уважением, Саурабх

person Raulp    schedule 23.09.2011