По этой статье prevent android from dimming (w/ haxe and nme)
Этот путь подходит для быстрого включения в свой NME проект простых нативных функций или настроек Android, без использования расширений.
1. Создаем файл MainActivity.java в папке проекта, который и будет шаблоном.
Предотвращение угасания экрана:
package ::APP_PACKAGE::;
import android.os.Bundle;
import android.view.WindowManager;
public class MainActivity extends org.haxe.nme.GameActivity {
protected void onCreate(Bundle state) {
super.onCreate(state);
getWindow().addFlags( WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
подобным способом я сделал cкрытие системного UI (статус бар с экранными кнопками) для ICS, HoneyComb
package ::APP_PACKAGE::;
import android.os.Bundle;
import android.view.*;
public class MainActivity extends org.haxe.nme.GameActivity {
protected void onCreate(Bundle state) {
super.onCreate(state);
View vw = findViewById(android.R.id.content).getRootView();
vw.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE );
}
}
2. и добавляем в application.nmml такую строчку, чтобы сделать этот файл темплейтом:
<template path="MainActivity.java" rename="src/[package_path]/MainActivity.java" if="android" />
где [package_path] это пакет-идентификатор нашего приложения, прописанный в теге meta того же nmml
Комментарии
+ BugSense
вот нашел такой прекрасный сервис для отлова багов в мобильных приложениях: http://www.bugsense.com/
его скорее всего можно применить в NME приложении по тому же принципу:
import android.os.Bundle;
import android.view.*;
import com.bugsense.trace.BugSenseHandler;
public class MainActivity extends org.haxe.nme.GameActivity
{
protected void onCreate(Bundle state) {
super.onCreate(state);
BugSenseHandler.setup(this, "YOUR_API_KEY");
}
}
остается только небольшой вопрос с тем, куда положить jar - но даже в худшем случае его можно подсунуть уже перед компиляцией в собранные исходники Android приложения, а вообще мне кажется что и в nmml уже есть что-то для этого. Возможно что-ндь типа:
+ ChartBoost или другие сервисы рекламы в NME игре на Android
По поводу jar сам себе и отвечу, с помощью вот этой статьи: Интеграция ChartBoost в HaxeNME
Там автор положил jar библиотеки в папку assets/libs. А потом в nmml добавил такую строчку:
т.е. кроме того, что предполагал я, еще и сделал эту папку папкой библиотек для Андроид проекта, так что потому туда можно напихать еще jar'ов без дополнительных изменений в конфиге. Разумно.
Почти всё, кроме этого, сделано по тому же принципу, что и в моей записи, только в конце добавлен абзац про то, как получить больше контроля над показом рекламы, создав статический метод и обратившись к нему из Haxe с помощью JNI.createStaticMethod:
showChartboost();
Этот подход видимо пошел от тьюториал Граника по созданию расширений для NME.
Вот еще обсуждение с похожим решением по теме: How do you call Haxe from Java (Android)?
Подход работает, но в том что это наилучший вариант, есть сомнения, вспоминая недавний пост у нас на форуме:
[Android] JNI.createStaticMethod открытие галереи девайса...
В обсуждении этой темы на nme.io Hugh предложил еще вариант с вызовом через UI поток:
{
jni_get_gallery_method([this]);
} );
Отправить комментарий