zoukankan      html  css  js  c++  java
  • 在ANE插件中启动AIR开发的Android应用

    在Android原生应用开发中,启动一个应用非常容易:

    1. Intent __intent = new Intent(this, YourAppActivity.class);
    2. startActivity(__intent);


    但在ANE插件开发中,要启动AIR开发的Android应用,就不那么容易了。

    因为我并不知道AIR应用的Activicy类名是什么,无法设置Indent。

    ANE包含在AIR应用中,我或许可以在ANE中得到AIR应用的Activity类名,但我尝试了下面的方法,不顶用:<!--more-->

    1. public class SetAlarmFun implements FREFunction
    2. {
    3.         public static final String TAG = "org.zengrong.ane.funs.SetAlarmFun";
    4.         
    5.         /**
    6.          * 保存上下文
    7.          */
    8.         private FREContext _context;
    9.         
    10.         @Override
    11.         public FREObject call(FREContext $context, FREObject[] $args)
    12.         {
    13.                 _context = $context;
    14.                 Log.i(TAG, _context.getActivity().getApplicationInfo().className);
    15.                 //null
    16.         }
    17. }


    ANE和AIR应用应该是运行在不同的线程中的,这或许是无法得到类名的原因。

    最后,下面的代码可以在ANE中启动AIR开发的Android应用。当然,在Android原生应用中,也可以用这种方法启动AIR应用。

    我的AIR应用的包名为`org.zengrong.ane.test`。但是AIR会自动为包名加入`air`前缀。如果是调试版的AIR应用,还会被自动加上`debug`后缀。

    因此,这个AIR应用的id实际上变成了`air.org.zengrong.ane.test.debug`。真够长的……

    1. public FREObject call(FREContext $context, FREObject[] $args)
    2. {
    3.         _context = $context;
    4.         Intent __activityIntent = _context.getActivity().getPackageManager().getLaunchIntentForPackage("air.org.zengrong.ane.test.debug");
    5.         startActivity(__activityIntent);
    6. }


    这个技巧有什么用?

    例如有个AIR开发的游戏希望在自己没有打开的时候提醒玩家上线,那么它就可以在后台使用ANE悄悄放一个Service,这个Service可以在合适的时候弹出Notification提醒玩家上线。玩家看到消息后,直接单击消息提示,自动打开游戏。

    如果我上面说的应用环境你没有看懂,那么就当我没说好了。

  • 相关阅读:
    (64)通信协议之一xml
    (63)通信协议之一json
    (61)C语言预处理命令详解
    (60) 结构体指针、结构体变量嵌套、结构体指针嵌套、函数指针、数组指针、指针数组、typedef 综合运用
    (59)Linux操作系统深入应用
    (58)PHP开发
    (57)Linux驱动开发之三Linux字符设备驱动
    (56)Linux驱动开发之二
    (55)Linux驱动开发之一驱动概述
    (54)LINUX应用编程和网络编程之九Linux网络通信实践
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/3316905.html
Copyright © 2011-2022 走看看