Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将附加内容从电子邮件传递到Flex应用程序_Android_Actionscript 3_Apache Flex_Air_Flex Mobile - Fatal编程技术网

Android 将附加内容从电子邮件传递到Flex应用程序

Android 将附加内容从电子邮件传递到Flex应用程序,android,actionscript-3,apache-flex,air,flex-mobile,Android,Actionscript 3,Apache Flex,Air,Flex Mobile,我有一个带有电子邮箱的flex移动应用程序。此ANE有一个广播接收器,在接收到事件时启动flex mobile应用程序: public class BroadcastEventHandler extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Log.d(Constants.TAG, "BROADCAST EVENT RECEIVED!");

我有一个带有电子邮箱的flex移动应用程序。此ANE有一个广播接收器,在接收到事件时启动flex mobile应用程序:

public class BroadcastEventHandler extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
    Log.d(Constants.TAG, "BROADCAST EVENT RECEIVED!");      
    try {
        Intent i = new Intent(context, 
                       Class.forName(context.getPackageName()+".AppEntry"));

        i.addCategory( Intent.CATEGORY_LAUNCHER );
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        i.putExtra("nameKey", "value");
        context.startActivity(i);

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
        Log.d(Constants.TAG, "Error on starting Intent: "+e.getMessage());
    }
}
在flex应用程序上,我有以下代码:

protected function view1_preinitializeHandler(event:FlexEvent):void
{
NativeApplication.nativeApplication.addEventListener(
    InvokeEvent.INVOKE, onInvoke);
}

private function onInvoke(event:InvokeEvent):void
{
    trace("Arguments: " + event.arguments);
}
我想做的是在执行时将额外的内容从broadcastreceiver传递到flex应用程序(如您所见,我在ANE代码中添加了一个Bundle对象,但在flex应用程序中没有收到任何内容):

跟踪:

Arguments: 

您知道如何使用一些参数/附加值启动活动(在android本机中)并在flex应用程序中获取它们吗?

最后,我无法通过本机代码中的Bundle对象实现这一点。向应用程序传递参数时必须使用清单中的
标记。 但是,

一个警告是,从AIR应用程序调用具有自定义URL方案的其他应用程序是不可能的。空中安全模式的限制性更大,它将方案限制为:http:、https:、sms:、电话:、邮件:、文件:、应用程序:、应用程序存储:、VipacAccess:和connectpro:。你可以在这里和这里找到更多关于它的信息

从这个伟大的教程:

到目前为止,我所做的是用成员数据实现一个类。在那里,我存储了我以后要处理的数据(与我希望直接通过Bundle传递的数据相同)

当我在broadcastreceiver中收到通知时,我设置notificationCode的新值,然后启动活动(与前面相同,但添加了对setNotificationCode函数的调用)

然后,在actionscript端,在方法onInvoke上,我执行以下调用:

//call native functions:
//broadcastevent is the EventDispatcher that connects to the ANE
notificationCode=broadcastevent.getCode();

switch(notificationCode)
{
 case Constants.DEFAULT_NOTIFICATION_CODE:
 {
     notificationMessage="THERE ARE NO NOTIFICATIONS";
     break;
 }
 case Constants.UPDATE_APP_CODE:
 {
     notificationMessage="UPDATE APP NOTIFICATION";
     break;
 }  
 case Constants.SHOW_ALERT_CODE:
 {
     notificationMessage="SHOW ALERT NOTIFICATION";
     break;
 }  
 default:
         break;
这不是我一直在寻找的,但我还没有找到其他方法来做类似的事情,而且很有效

//call native functions:
//broadcastevent is the EventDispatcher that connects to the ANE
notificationCode=broadcastevent.getCode();

switch(notificationCode)
{
 case Constants.DEFAULT_NOTIFICATION_CODE:
 {
     notificationMessage="THERE ARE NO NOTIFICATIONS";
     break;
 }
 case Constants.UPDATE_APP_CODE:
 {
     notificationMessage="UPDATE APP NOTIFICATION";
     break;
 }  
 case Constants.SHOW_ALERT_CODE:
 {
     notificationMessage="SHOW ALERT NOTIFICATION";
     break;
 }  
 default:
         break;