Мне нужно отобразить действие, написанное на Java, с помощью Android SDK в моем приложении Flex Mobile. Я видел, как это делается с помощью Map ANE, но не могу найти ни одного примера кода или чего-то подобного. Я уже создал код Java и ActionScript, необходимый для работы моего ANE (активность создана, и все классы, события и методы, необходимые для действительного соединения Java и AS3, есть), я просто не могу понять, как добавить его на сцену. Я знаю, что его нельзя добавить в DisplayList, и меня устраивает, что он является сценическим объектом.
Если это вообще помогает, я пытаюсь отобразить видео с помощью MediaPlayer (из-за проблем с потоковой передачей MP4, когда это делается с использованием AS3/Flex).
Для Майкла (27 августа 2012 г., 9:44 по московскому времени):
08-27 09:27:07.836: I/CS VideoInit(2567): context is set
08-27 09:27:07.836: I/CS VideoInit(2567): intent is instantiated
08-27 09:27:07.836: I/ActivityManager(349): START {cmp=air.AndroidANETesting2/xi.video.android.extension.VideoActivity u=0} from pid 2567
Самая первая строка моей деятельности
Log.i("CS VideoActivity","Made it inside the activity somehow");
Вот посмотрите на мою Java. Это функция инициализации:
VideoInit.context = context;
Log.i("CS VideoInit","context is set");
Intent intent = new Intent( context.getActivity(), VideoActivity.class );
Log.i("CS VideoInit","intent is instantiated");
context.getActivity().startActivity( intent );
Log.i("CS VideoInit","Activity is started");
context.dispatchStatusEventAsync("PLAY", "PLAY");
А вот моя VideoActivity onCreate():
super.onCreate(savedInstanceState);
Log.i("CS VideoActivity","Made it inside the activity somehow");
И мой манифест на всякий случай (только раздел приложения):
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".VideoActivity"
android:label="@string/title_activity_video" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Обновление (27 августа 2012 г., 10:52 по московскому времени) После дальнейшего изучения (или проб и ошибок, как бы вы это ни называли) я решил добавить строку startActivity() в команду try{} catch(Throwable e), чтобы увидеть, какие ошибки он выдавал. Интересно, что он бросил это.
08-27 10:49:41.406: I/CS VideoInit(7786): Unable to find explicit activity class {air.AndroidANETesting2.debug/xi.video.android.extension.VideoActivity}; have you declared this activity in your AndroidManifest.xml?
Похоже, мне нужно перепроверить файл манифеста Android.