通过 ANE(Adobe Native Extension) 启动Andriod服务 推送消息(五)
这一节,用个简单的例子来调用下之前生成的service.ane
首先建一个flex手机项目
然后在构建路径中把ane引进来
可以看到此ane支持Android平台。
serviceMobile.mxml如下:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" xmlns:mx="library://ns.adobe.com/flex/mx" backgroundColor="0" applicationComplete="init()"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ import nav.wenbo.service.ServiceController; public var sCtrl:ServiceController; private function init():void { sCtrl = ServiceController.instance; } public function startService(event:Event):void { sCtrl.startAndriodService(); trace("start"); } public function stopService(event:Event):void { sCtrl.stopAndriodService() trace("stop"); } public function sendMessage(event:Event):void { sCtrl.setNotification(msginput.text); trace("init"); } ]]> </fx:Script> <s:Button name="init" label="sendMessage" click="sendMessage(event)" y="100"> </s:Button> <s:Button name="startService" label="startService" click="startService(event)" y="0"> </s:Button> <s:Button name="stopService" label="stopService" click="stopService(event)" y="50"> </s:Button> <s:TextInput name="msg" text="输入消息" id="msginput" y="150"> </s:TextInput> </s:Application>
最后一步,你需要在air -app.xml里配置上service的权限
<android> <colorDepth>16bit</colorDepth> <manifestAdditions><![CDATA[ <manifest android:installLocation="auto"> <!--See the Adobe AIR documentation for more information about setting Google Android permissions--> <!--删除 android.permission.INTERNET 权限将导致无法调试设备上的应用程序--> <uses-permission android:name="android.permission.INTERNET"/> ...... <application> <service android:enabled="true" android:exported="true" android:name="nav.wenbo.service.NotificationService" /> </application> </manifest> ]]></manifestAdditions> </android>
然后你可以,调试或是装到真机上测试它。这里我装在模拟器上测试它
先占击startService
可以输入一条信息测试
往下拉通知
so, enjoy it!