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);
}
}
}
air for android 使用ANE来获取安卓手机IMEI号的更多相关文章
- error while obtaining ui hierarchy xml file...用 uiautomatorviewer 获取安卓手机软件页面时报错
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't ...
- Python爬网——获取安卓手机统计数据
[本文出自天外归云的博客园] 1. 在安卓网上对热门机型进行爬网,取前五十: # -*- coding: utf-8 -*- import requests,re from bs4 import Be ...
- Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
结果: 1.不提示发短信卡住,点击没有反映,我猜想,可能是因为我用的是小米手机吧. 2.接收短信报错,我猜想可能是我改了里面的方法吧(哪位大神了解,求指教). 3.project -->opti ...
- 获取手机IMEI 号和 IP
没什么可说的,直接上代码: public class PhoneStateCodeUtils { /** * 获取手机imei串号 */ public static String getImei(Co ...
- Android实例-获取安卓手机WIFI信息(XE8+小米2)
结果: 1.必须打开Access wifi state权限,不打开权限会出图二的错误. 相关资料: http://blog.csdn.net/lyf_lyf/article/category/1735 ...
- Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用
一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了,它的复杂度远远大于纯粹的应用开发.首先必须要考虑的就是集成第三方SDK,支付这块渠道商已经帮你我们做好了,只需要按照文档对 ...
- [Android Pro] 将你的安卓手机屏幕共享到PC或Mac上
有时候为了方便演示一个手机app,需要把手机屏幕显示到PC或Mac上.这里提供一个方法 — 使用Vysor达到此功能. Vysor的吸引力在于3个方面: 它适用于Windows.Linux或Mac. ...
- 关于adb命令获取安卓手机uuid时,demon 显示启动成功,但又获取不到uuid的解决办法:现象如下所示
* daemon not running. starting it now on port 5037 * *demon started successfully* *list of devices a ...
- 开发腾讯移动游戏平台SDK Android版Ane扩展 总结
本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方式 问题一:编译报错:Unable to resolve target 'android ...
随机推荐
- 7.8 Models -- The Rest Adapter
一.概述 默认的,store将会使用 DS.RESTAdapter来加载和存储records.这个RESTAdapter假定URLS和JSON关联每一个model是约定好的:这意味着,如果你遵循这个规 ...
- Vue.js学习笔记——表单控件实践
最近项目中使用了vue替代繁琐的jquery处理dom的数据更新,个人非常喜欢,所以就上官网小小地实践了一把. 以下为表单控件的实践,代码敬上,直接新建html文件,粘贴复制即可看到效果~ <! ...
- 好消息啊,有些c似乎不用加厂商前缀了
今天写程序,一个不小心,没写厂商前缀,然而,,,,,,, 可以运行了(我居然不知道这个消息!!!!) 赶紧写几个字纪念一下. (把鼠标移动到红色的字上边~~~) don' you think that ...
- Yii2 配置 Nginx 伪静态
主要检查以下代码: location / { # Redirect everything that isn't a real file to index.php try_files $uri $uri ...
- 改变 select下拉框 样式
select{ outline: none; text-indent: 10px; height: 45px; line-height: 45px; width: 100%; border:1px s ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON ConvolImage
zw版[转发·台湾nvp系列Delphi例程]HALCON ConvolImage procedure TForm1.Button1Click(Sender: TObject);begin img.D ...
- CPU VS GPU(性能调优 12.1)
CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器).在现代iOS设备中,都有可以运行不同软件的可编程芯片,但是由于历史原因,我们可以说CPU所做的工作都在 ...
- Android (Android Studio)无法启动adb 解决方案
打开cmd 输入: netstat -aon|findstr "5037" 回车 taskkill /pid xxxx /f ps:xxxx为占用端口 ...
- charles 手机抓包 unknown
设置通配符即可 需要注意的点: 手机配置好电脑的服务器ip和端口号后,下载证书和安装好,然后电脑也需要安装证书.再配置可允许ssl 本地域名.
- spoj1825 Free tour II
题目链接 一道神奇的点分治 貌似有很多做法,我觉得BIT要好些一些(雾 要求经过黑点数<k就用BIT区间查询前缀 对于每个点用 BIT[0,k-经过黑点数]的最大值+路径长度 使用点分治做到O ...