一首页创建一个ANE文件
 1 使用FlashBuilder 或者Eclipse 创建一个新的android项目
     A 创建文件Extension.java

package com.dabing.airextension;
              
import com.adobe.fre.*;
              
//Extension这个类是AS与JAVA交互的最基础的入口,其实很简单,也就这么点东西
public class Extension implements FREExtension {
              
    @Override
    public FREContext createContext(String arg0) {
        // new一个新的threeExtensionContext出来;
        return new MyExtensionContext();
    }
              
    @Override
    public void dispose() {
        // 这个销毁资源的方法,暂时没有什么用,空着
    }
              
    @Override
    public void initialize() {
        // 初始化方法,暂时用不着,空着先
    }
              
}
b 创建MyExtensionContext

package com.dabing.airextension;
import java.util.*;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
             
public class MyExtensionContext extends FREContext {
    public MyExtensionContext() {
    }
             
    @Override
    public void dispose() {
    }
    @Override
    public Map<String, FREFunction> getFunctions() {
        Map<String, FREFunction> functionMap = new HashMap<String, FREFunction>();
        functionMap.put("getsn", new GetIMEI());
        return functionMap;
    }
}
c 创建获取手机imei号的功能程序,你可以修改成其他功能,通过参数args来接受flash端传来的参数

package com.dabing.airextension;
            
import android.content.Context;
import android.telephony.TelephonyManager;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREInvalidObjectException;
import com.adobe.fre.FREObject;
import com.adobe.fre.FRETypeMismatchException;
import com.adobe.fre.FREWrongThreadException;
public class GetIMEI implements FREFunction {
    @Override
    public FREObject call(FREContext context, FREObject[] args) {
        // 定义方法的具体内容
        FREObject sn = null; // 声明一个FREObject对象b,待会返回用的;
        try {
            sn = FREObject.newObject(getSnNumber(context.getActivity()));
        } catch (FREWrongThreadException e) {
            e.printStackTrace();
        }
        return sn;
    }
     public String getSnNumber(Context context) {
         String imei = null;
         TelephonyManager mTelephonyMgr;
         mTelephonyMgr = (TelephonyManager) context
                           .getSystemService(Context.TELEPHONY_SERVICE);
         imei = mTelephonyMgr.getDeviceId();
         return imei;// getConfigSetting(context, CONFIGFILE, "SN");
     }
}
所有文件完成,在项目上右键导出成jar文件

2 现在创建swc文件
  新建一个flash库项目,创建时勾选“包括Adobe AIR”库
package com.dabing.airextension
{  
    import flash.external.ExtensionContext;
    public class GetAndroidPhoneSn
    {
        protected var context:ExtensionContext;
        public function GetAndroidPhoneSn()
        {
            context = ExtensionContext.createExtensionContext("com.dabing.airextension.Extension","");
        }
                  
        public function getSn(value:int):String{
            var str:String = "";
            if(context!=null){
                str = context.call("getsn",value) as String;
                trace("debug str="+str);
            }
            return str;
        }
    }
}
创建好后,在项目Bin目录下将swc拷贝出来,和jar放在一起

3 创建extension.xml文件

<extension xmlns="http://ns.adobe.com/air/extension/2.5">
    <id>com.dabing.airextension.Extension</id>
    <versionNumber>1</versionNumber>
    <platforms>
        <platform name="Android-ARM">
            <applicationDeployment>
                <nativeLibrary>myExtensionGetSn.jar</nativeLibrary>
                <initializer>com.dabing.airextension.Extension</initializer>
                <finalizer>com.dabing.airextension.Extension</finalizer>
            </applicationDeployment>
        </platform>
    </platforms>
</extension>

4 生成ane
将swc 复制一份,并将扩展名修改成zip文件,解压缩后得到一个library.swf
在这里下载 http://pan.baidu.com/share/link?shareid=229592&uk=2332322709
adt工具,使用flash builder 或者 flash cs创建一个p12,key文件
或者这里下载我创建的开发版的p12文件  http://pan.baidu.com/share/link?shareid=229601&uk=2332322709
这个key的密码是123。

然后在win命令行里,切换到你的swc,jar,xml,swf,adt工具所在的目录
输入命令
java -jar adt.jar -package -tsa none -storetype pkcs12 -keystore sphone2Key.p12 -storepass 123 -target ane myExtensionGetSn.ane extension.xml  -swc myExtensionGetSn.swc -platform Android-ARM library.swf myExtensionGetSn.jar
如果不能运行,可能你需要安装java runtime,或者检查所有文件都在及xml文件正确
这样就生成myExtensionGetSn.ane
将这个ane及swc文件加入到你的项目
就可以使用了

package
{
    import com.dabing.airextension.GetAndroidPhoneSn;
       
    import flash.display.Sprite;
    import flash.events.MouseEvent;
       
   
    [SWF(frameRate="20", width="480", height="800", backgroundColor="0xFFFFFF")]
    public class TestMyExtension extends Sprite
    {
        private var flashgetsn:GetAndroidPhoneSn;
        public function TestMyExtension()
        {
            super();
            inits();
        }
           
        private function inits():void
        {
            stage.addEventListener(MouseEvent.CLICK,onMouseClick);
        }
           
        protected function onMouseClick(event:MouseEvent):void
        {
            flashgetsn = new GetAndroidPhoneSn();
            var str:String = flashgetsn.getSn(1);
            trace("str="+str);
        }
    }
}

转载于:https://www.cnblogs.com/Free-Thinker/p/3303318.html

air for android 使用ANE来获取安卓手机IMEI号相关推荐

  1. C/C++获取安卓手机IMEI编号demo

    C/C++获取安卓手机IMEI编号demo #include <stdlib.h> #include <exception> #include <fstream> ...

  2. android 获取当前输入法,关于获取安卓手机系统输入法和设置输入法

    关于获取安卓手机系统输入法和设置输入法 获取输入法列表 adb shell ime list -s 出来下面的 io.appium.android.ime/.UnicodeIME com.sec.an ...

  3. php 获得手机位置坐标,获取安卓手机的坐标位置

    1.打开Android手机"设置"APP,点击"关于手机". 2.在"版本号"上连续点击5次,打开"开发者选项".也有些 ...

  4. 如何获取安卓手机设备名称(包括用户自定义名称)

    获取安卓手机设备名称 最近公司有个需求,需要获取安卓手机的设备名称 搜了一大波资料后发现大多数获取设备名称的方法都是通过android.os.Build这个类拿到的,但是这种方法只能拿到手机型号啊,不 ...

  5. Android利用Java反射获取用户手机的rom定制系统及版本,EMUI,MIUI,ColorOS,FunthouchOS等

    Android利用Java反射获取用户手机的rom定制系统版本及版本号,EMUI,MIUI,ColorOS,FunthouchOS等 前言 正文 结语 前言 现在手机厂商都推出了自己的基于Androi ...

  6. Unity获取安卓手机运营商信息

    Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用 一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了 ...

  7. android模糊后面视频,在安卓手机上怎么制作中间是横视频上下是模糊效果的竖视频?手机视频短片制作...

    注意此教程方案是『安卓手机端教程方案』 今天要介绍的是安卓手机视频短片制作软件,可以在安卓手机上制作手机视频短片哦,制作那种中间是横视频上下是模糊效果的竖视频哦~不是手机看的视频片,手机怎么下载好看的 ...

  8. android h5可以获取设备的imei 和iccid_Android10 下获取序列号和IMEI号的权限

    介绍 Android10 因为提高了其安全性能,因此获取序列号和IMEI号的权限与以前的版本有了变化这里就举例Zebra 移动设备Android 10 系统下的如何获取相应权限.运行Android 1 ...

  9. 安卓获取imei权限闪退_Android10 下获取序列号和IMEI号的权限

    介绍 Android10 因为提高了其安全性能,因此获取序列号和IMEI号的权限与以前的版本有了变化这里就举例Zebra 移动设备Android 10 系统下的如何获取相应权限.运行Android 1 ...

  10. Android之获取手机IMEI号和IMSI号

    首先我们看一下IMEI号和IMSI号是什么: (1)IMEI(International Mobile Equipment Identity,国际移动身份识别码):是由15位数字组成的"电子 ...

最新文章

  1. apache性能测试工具ab使用详解
  2. 判断请求是否为Ajax请求的小妙招
  3. jsonArray转换成List
  4. 微信小程序 高德地图知道两点求道路_微信小程序——计算2点之间的距离
  5. python中静态方法存在的意义
  6. 如何在 Mac 上忘记 Wi-Fi 网络?
  7. 深度学习之语义分割(SegNet)
  8. 速览!PCBA需要刷三防漆,如何制作治工具?
  9. fclk if总线_技嘉B550手把手超频指南,光威血影为例
  10. 一杯茶的时间,上手 Django 框架开发
  11. 是否优化更新主题浏览量:_主题306:能力规划
  12. 解析MySQL ibd文件
  13. 骗子、假先知们一夜暴富背后:区块链是回归互联网本来意义的唯一希望 | 深度
  14. MSDC 4.3 接口规范(26)
  15. 40000字 Matplotlib 实操干货,真的全!
  16. 策划入门(三)创意的价值和如何写故事
  17. JAVA 启动JVM时,Xms和Xmx参数
  18. 淘宝标题优化词根优化方法技巧 什么是淘宝标题词根
  19. 详解:熊掌号每一篇闪光的原创,都值得保护!
  20. a股历史30年的大盘价_中国股市历史图(中国股市30年走势图)

热门文章

  1. mysql建表时创建索引语句_创建表的时候创建索引
  2. jsp跨域访问cookies_cookie 跨域访问的解决方案
  3. sqlerver 字符串转整型_Sqlerver进行模糊查询like和转义字符
  4. macos安装vscode_什么!你还没有安装Flutter!
  5. Collectors.toMap()
  6. java中卫语句详解
  7. php设置路径别名,设置别名php = / bin / php56,但今天它已恢复为原始路径:/ bin / php...
  8. 电子相册系统(九)分页
  9. 【渝粤教育】广东开放大学 外国文学专题 形成性考核 (55)
  10. 【sklearn第二十七讲】模型持久性