2011-04-08 66 views
6

如何在啓動另一個AIR類型的應用程序時從Java活動傳遞參數?將Java活動的參數傳遞給Adobe AIR應用程序

我們爲java活動的方式是使用Intent的額外。當它是Android上的Java Activity和AIR應用程序時,參數傳遞機制是什麼?目前我們通過共享一個共同的地方(sqlite db)來傳遞參數並每秒鐘輪詢它。這不是一個好的設計,我相信肯定有一些好的方法來做到這一點。請賜教。

回答

9

在Adobe AIR 2.5中,您可以使用自定義URI將參數傳遞給AIR應用程序。

通過使用此功能,可以從瀏覽器或原生android應用程序調用應用程序。當從瀏覽器/ android-app調用應用程序時,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> 

我們從瀏覽器中啓動應用程序,提供的網址爲: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> 

一旦你的應用程序被啓動,取收到InvokeEvent的參數性能。這將包含完整的URI(testapp://arg1=value&secondArgument=someValue),您可以解析它以提取參數。

here

3

除了上面的回答,使用意圖做這啓動從一個機器人應用Adobe AIR應用程序:

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); 
1

SWF文件是MXML的輸出,是用於傳遞值的上述方法從android到mxml或到.swf。我們必須從.swf或.mxml文件中進行什麼修改。我正在編譯FB(Flash Builder)4.5中的mxml並從android eclipse中調用它。 Rgds, saurabh

相關問題