在ANE插件中启动AIR开发的Android应用
2013-09-12 14:49
471 查看
在Android原生应用开发中,启动一个应用非常容易:
Intent __intent = new Intent(this, YourAppActivity.class);
startActivity(__intent);
但在ANE插件开发中,要启动AIR开发的Android应用,就不那么容易了。
因为我并不知道AIR应用的Activicy类名是什么,无法设置Indent。
ANE包含在AIR应用中,我或许可以在ANE中得到AIR应用的Activity类名,但我尝试了下面的方法,不顶用:<!--more-->
public class SetAlarmFun implements FREFunction
{
public static final String TAG = "org.zengrong.ane.funs.SetAlarmFun";
/**
* 保存上下文
*/
private FREContext _context;
@Override
public FREObject call(FREContext $context, FREObject[] $args)
{
_context = $context;
Log.i(TAG, _context.getActivity().getApplicationInfo().className);
//null
}
}
ANE和AIR应用应该是运行在不同的线程中的,这或许是无法得到类名的原因。
最后,下面的代码可以在ANE中启动AIR开发的Android应用。当然,在Android原生应用中,也可以用这种方法启动AIR应用。
我的AIR应用的包名为`org.zengrong.ane.test`。但是AIR会自动为包名加入`air`前缀。如果是调试版的AIR应用,还会被自动加上`debug`后缀。
因此,这个AIR应用的id实际上变成了`air.org.zengrong.ane.test.debug`。真够长的……
public FREObject call(FREContext $context, FREObject[] $args)
{
_context = $context;
Intent __activityIntent = _context.getActivity().getPackageManager().getLaunchIntentForPackage("air.org.zengrong.ane.test.debug");
startActivity(__activityIntent);
}
这个技巧有什么用?
例如有个AIR开发的游戏希望在自己没有打开的时候提醒玩家上线,那么它就可以在后台使用ANE悄悄放一个Service,这个Service可以在合适的时候弹出Notification提醒玩家上线。玩家看到消息后,直接单击消息提示,自动打开游戏。
如果我上面说的应用环境你没有看懂,那么就当我没说好了。
Intent __intent = new Intent(this, YourAppActivity.class);
startActivity(__intent);
但在ANE插件开发中,要启动AIR开发的Android应用,就不那么容易了。
因为我并不知道AIR应用的Activicy类名是什么,无法设置Indent。
ANE包含在AIR应用中,我或许可以在ANE中得到AIR应用的Activity类名,但我尝试了下面的方法,不顶用:<!--more-->
public class SetAlarmFun implements FREFunction
{
public static final String TAG = "org.zengrong.ane.funs.SetAlarmFun";
/**
* 保存上下文
*/
private FREContext _context;
@Override
public FREObject call(FREContext $context, FREObject[] $args)
{
_context = $context;
Log.i(TAG, _context.getActivity().getApplicationInfo().className);
//null
}
}
ANE和AIR应用应该是运行在不同的线程中的,这或许是无法得到类名的原因。
最后,下面的代码可以在ANE中启动AIR开发的Android应用。当然,在Android原生应用中,也可以用这种方法启动AIR应用。
我的AIR应用的包名为`org.zengrong.ane.test`。但是AIR会自动为包名加入`air`前缀。如果是调试版的AIR应用,还会被自动加上`debug`后缀。
因此,这个AIR应用的id实际上变成了`air.org.zengrong.ane.test.debug`。真够长的……
public FREObject call(FREContext $context, FREObject[] $args)
{
_context = $context;
Intent __activityIntent = _context.getActivity().getPackageManager().getLaunchIntentForPackage("air.org.zengrong.ane.test.debug");
startActivity(__activityIntent);
}
这个技巧有什么用?
例如有个AIR开发的游戏希望在自己没有打开的时候提醒玩家上线,那么它就可以在后台使用ANE悄悄放一个Service,这个Service可以在合适的时候弹出Notification提醒玩家上线。玩家看到消息后,直接单击消息提示,自动打开游戏。
如果我上面说的应用环境你没有看懂,那么就当我没说好了。
相关文章推荐
- 如何将为Android开发的AIR应用转移到SD卡
- android开发之提高应用启动速度_splash页面瞬间响应_避免APP启动闪白屏
- android插件开发-就是你了!启动吧!插件的activity(一)
- 如何将为Android开发的AIR应用转移到SD卡
- AIR Native Extension实现iOS应用内付费(In-App Purchase)全教程(四)——ANE面向IAP的测试和开发
- Android应用插件化开发中自定义View基础插件遇到的问题
- Android 插件化开发——应用的启动过程源码解析(简单清晰)
- Android开发:判断应用第一次启动(精简代码版)
- android开发之提高应用启动速度_splash页面瞬间响应_避免APP启动闪白屏
- 三星校园杯Android应用开发大赛正式启动
- Visual Studio 2015开发Android App启动调试始终无法完成应用部署的解决方案
- Android开发:判断应用第一次启动(精简代码版)
- android开发之提高应用启动速度_splash页面瞬间响应_避免APP启动闪白屏
- Android开发之AIDL的使用一--跨应用启动Service
- [Android开发]Activity的四种启动模式及其应用场景
- android开发之提高应用启动速度_splash页面瞬间响应_避免APP启动闪白屏
- Adobe Native Extension(ANE)-Actionscript通过语音来控制你的android应用-Air for android
- Android开发环境搭建和项目各文件介绍应用安装和启动过程
- android开发设置应用开机自启动
- 解决开发android应用时虚拟机启动、运行较慢的问题