通过 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!

posted @ 2013-08-22 14:46  brave-sailor  阅读(273)  评论(0编辑  收藏  举报