gpt4 book ai didi

android - 将额外内容从 ANE 传递到 Flex 应用程序

转载 作者:行者123 更新时间:2023-11-30 03:06:10 24 4
gpt4 key购买 nike

我有一个带有 ANE 的 flex 移动应用程序。这个 ANE 有一个广播接收器,它在接收到事件时启动 flex 移动应用程序:

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);
}

我想做的是在执行时将 Extras 从 broadcastreceiver 传递给 flex 应用程序(如您所见,我在 ANE 代码中添加了一个 Bundle 对象,但我在 flex 应用程序中没有收到任何东西) :

跟踪:

Arguments: 

您是否知道使用一些参数/附加项启动 Activity (在 android 原生中)并在 flex 应用程序中获取它们的方法?

最佳答案

最后,我无法通过 native 代码中的 Bundle 对象来执行此操作。向应用程序传递参数必须使用 <data android:scheme="my-scheme"/> list 中的标记。然而,

One caveat is that invoking other apps with the custom URL schemes from AIR apps is not possible. The AIR security model is more restrictive and it limits schemes to: http:, https:, sms:, tel:, mailto:, file:, app:, app-storage:, vipaccess: and connectpro:. You can find more about it here and here.

来自这个很棒的教程:

http://www.riaspace.com/2011/08/defining-custom-url-schemes-for-your-air-mobile-applications/

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

public class DataModel {
//data I will get after in the actionscript side of the code
private int notificationCode;

public int getNotificationCode(){
return notificationCode;
}

public void setNotificationCode(int notificationCode){
this.notificationCode=notificationCode;
}
}

当我在 broadcastreceiver 中收到通知时,我设置了 notificationCode 的新值,然后启动 Activity (与之前相同,但添加了对 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;

这不是我真正想要的,但我还没有找到其他方法来做类似的事情,而且它有效!

关于android - 将额外内容从 ANE 传递到 Flex 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com