zoukankan      html  css  js  c++  java
  • air for android 使用ANE来获取安卓手机IMEI号

    一首页创建一个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);
            }
        }
    }

  • 相关阅读:
    【重要】关于WEBSERVICE的远程访问问题
    【系统】windows2003 至少有一个服务或驱动程序无法加载或错误
    【总结】IE6、IE7、IE8、Firefox、Opera CSS hack区分
    【总结】DIV+CSS有可能遇到的问题
    【精华】Asp优化之缓存技术
    【总结】ASP字符串转换函数用法
    【重要】条形码原理39码和EAN13码
    【精华】教你如何制作无人值守安装Win XP系统盘
    【原创】解决IE8下minheight值使bottom:0px失效的方法
    【手机】Windows Mobile手机软件安装卸载方法
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/3303318.html
Copyright © 2011-2022 走看看