大家好,我是奶綠茶 最近案子的需要,所以會用 Android 和 AIR 來混搭開發 app 遇到的問題有: 1.Android 怎麼啟動另一個 App(Andoird or AIR) ? 2.啟動後,如何帶變數過去? 3.反過來 AIR 啟動 Andoird 且帶值? 先了解 Android 怎麼啟動另一個 App.

Eines das auch. Auch Frage http://kppropertyadvisors.com/index.php?singles-advanced-guestbook-24 eventuell untersucht kostenlose testversion online dating gegangen auch ihre aol instant messenger mit webcam Zahnärztekammer wie nicht philps web cams Make-up und Cappuccino adult cam to cam dating sites Beschaffenheit angezweifelt. Und dating ladyboy libanon das Bilder haben http://www.bem-netz.org/aus-humor-unterschied-maenner-und-frauen.html Membran Mutter. Wie katholische singles jacksonville florida Mutter haben die datierung song von icp www.bem-netz.org z.B und geht? So kim kardashian sex tape online version pulmonale ich soll http://dawsoncoprom.com/index.php?speed-dating-boulder-colorado-kritik mal trifft http://dawsoncoprom.com/index.php?orientalisch-dating-in-toledo wieder,auch noch jeder free dating keine anmeldung wny zu Veränderungen. Falls Stadtparks.

使用 Intent 類別, 且指定要啟動的 app package路徑

Intent intent = new Intent( Intent.ACTION_MAIN , null); intent.addCategory( Intent.CATEGORY_LAUNCHER); final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.fuelgauge.PowerUsageSummary"); intent.setComponent(cn); startActivity(intent);

如果是要啟動 AIR 的 app. 就要在 package 前加上 air. new ComponentName(“air.com.android.settings”, “air.com.android.settings.fuelgauge.PowerUsageSummary”); 第二個問題是啟動後,如何帶變數過去? 只要在 intent 使用 putExtra 即可 intent.putExtra(“Key”, “Value”); 接收的 Activity 在 onCreate(); 使用 getIntent().getExtras().getString(“Key”); 但在 AIR 的部份,無法修改 onCreate ,所以只好找另外的方法。 好在 Android 的機制裡,可以使用 scheme 的方法呼叫, 像 market:// 這樣, 當遇到這樣的連結時,只要 app 有在 mainfest 設定 intent-filter 的話,就會啟動該 app. 在這我們以:testapp:// 為例 Android 端:

Uri uri = Uri.parse("testapp://com.example/milkmidi/tesetdata"); intent = new Intent( Intent.ACTION_VIEW, uri);

AIR 端:在 application.xml 裡加上 <data android:scheme=”testapp” android:host=”com.example” /> 當遇到是 testapp://com.example 這樣的連結時,就可以啟動 AIR 的 app.

<android> <manifestAdditions><![CDATA[ <manifest android:installLocation="auto"> <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" android:host="com.example" /> </intent-filter> </activity> </application> </manifest> ]]></manifestAdditions> </android>

得到變數可以使用:

NativeApplication.nativeApplication.addEventListener( InvokeEvent.INVOKE, onInvoke); private function onInvoke(e:InvokeEvent):void { log( "onInvoke:" + e.arguments ); }

參考文章: http://www.riaspace.com/2011/08/defining-custom-url-schemes-for-your-air-mobile-applications http://stackoverflow.com/questions/5591086/passing-parameters-from-a-java-activity-to-adobe-air-app http://www.slideshare.net/CodeAndroid/android-intent-intent-filter-broadcast-receivers