Android SDK中的PowerManager用来管理设备电源、重启、锁定休眠状态、唤醒等等操作。我已经把PowerManager的功能加入到了ANEToolkit中,这里记录一下开发过程中遇到的几个要注意的东东。
关于权限
PowerManager的所有功能,需要以下三类权限
阅读更多
2013-03-02更新:CyanogenMod的 Wiki已经删除了下载地址页面,因此加入了新的Google Apps下载地址。
LP总抱怨她的HTC EVO 4G速度太慢,今天终于能抽出点时间来刷个机了。
像EVO 4G这种老机器,是肯定没有官方版的ICS可以OTA升级的,只能考虑刷第三方Rom。于是我转战机锋、安卓网等多个论坛,刷了4个Rom,发现要么是吸费软件太多,要么是刷完无法启动,忙活了半个多个小时也没找到满意的Rom。
在重刷第4个Rom的时候,刷机的过程中发现原Rom作者嵌入到刷机代码中的博客地址,终于在moonlight的博客找到了近乎纯净版的CyanogenMod9版本的EVO 4G Rom。而且 …
阅读更多2013-05-29更新: 加入adt的-validityPeriod参数
Google Play的比App Store的要求松太多,可以制作一个自签名证书来对自己的应用进行签名。
有许多工具可以生成这个自签名证书。下面讲讲在使用AIR发布Google Play应用的时候,如何生成需要的证书。
使用AIR ADT工具生成p12证书
AIR SDK中包含的ADT工具提供了方法让我们创建一个自签名的p12证书。
下面的代码生成一个所有者为zengrong.net,密码为123456,保存在当前目录下,文件名为zrong.p12。
阅读更多1adt -certificate -cn zengrong.net 1024-RSA zrong.p12 …在Android开发中,使用SharedPreferences来共享一些小的配置数据是非常方便的。可是我发现在不同版本上,SharedPreferences的表现并不一样。
阅读更多有一个Android应用包含包含一个后台程序,该程序会定期连接服务器来实现自定义信息的推送。但是,当这个应用处于前台的时候,后台程序就没有必要连接服务器了。这样可以节省网络资源,也更省电。
阅读更多前戏
也许你会奇怪,既然AS提供了Socket实现,为什么还要用ANE来实现Socket连接?
在 在ANE插件中启动AIR开发的Android应用 一文的最后,我提到了一个应用案例,我现在将这个案例明确的说明一下。
对于游戏开发者来说,我们希望能推送给用户一些消息。如果使用常规的手段,只能在用户打开游戏的时候,才能和服务器通信,收到这些消息。
如果用户几天不上线,那么可能会错过这些消息,导致游戏中的公告、奖励不能及时到达。
要解决这个问题,我们可以在Android系统中注册一个Service。这个Service长期保持与服务器的连接,或者隔段时间连接一次服务器,收到消息后马上推送给用户。 …
阅读更多在Android原生应用开发中,启动一个应用非常容易:
1Intent __intent = new Intent(this, YourAppActivity.class); 2startActivity(__intent);但在ANE插件开发中,要启动AIR开发的Android应用,就不那么容易了。
因为我并不知道AIR应用的Activicy类名是什么,无法设置Indent。
ANE包含在AIR应用中,我或许可以在ANE中得到AIR应用的Activity类名,但我尝试了下面的方法,不顶用:
阅读更多我在Android上使用 flash.net.NetworkInfo 实现了socket连接在网络状态改变时的自动重连机制,但却发现在iOS设备上不支持 flash.net.NetworkInfo 。
Adobe的 API文档 中说,NetworkInfo需要 AIR Profile Support 支持,我在该文档中找到 mobileDevice Profile ,发现 NetworkInfo 一栏的值为 Check ,也就是说,必须由开发者使用 NetworkInfo.isSupported 来检测设备是否支持 NetworkInfo。
阅读更多2012-07-13更新:加入iOS设备测试。
怎样在使用AIR编写的Android程序中控制设备的方向呢?
例如有一款游戏,希望无论在平板电脑上,还是在手机中,都以竖屏(垂直方向)的方式启动,而且无论如何都不可能横屏。我们可以这样设置:
在应用程序描述符中,将autoOrients设置为true,将aspectRatio设置为portrait。在应用程序描述符中,将autoOrients设置为false,将aspectRatio设置为portrait。
在Android平台上,将autoOrients设置为true或者false,是同样的效果。而在iOS平台上,必须将autoOrients设置为false才能得到上面的效果。
本 …
阅读更多