从Android上的另一个Air应用程序打开一个Air应用程序

时间:2014-06-05 14:02:19

标签: android actionscript-3 flash android-intent air

我需要从Android上的另一个Air应用程序打开一个Air应用程序。到目前为止,我尝试了三个选项都失败了:

  1. 使用描述hereadobe.utils.ProductManager打开,但找不到'发布商ID'。这是一篇非常古老的文章,我没有对此抱有希望。

  2. 使用andoid:scheme,可以在浏览器中正常使用,但是从其他Air应用中我得到了“安全沙箱违规”。我将这个与正常链接和重定向页面结合使用。看起来非常不专业,但它确实有效。

    navigateToURL(new URLRequest('air.com.developer.appname://'));
    
  3. 使用intent:描述here,以便在新任务中开启。

    var url:String = ("intent:#Intent;" +
                      "action=android.intent.action.MAIN;" +
                      "category=android.intent.category.LAUNCHER;" +
                      "launchFlags=0x10000000;" +
                      "component=<your-package-name>/.<your-activity-name>;" +
                      "end";
    navigateToURL(new URLRequest(url));
    
  4. 这些都不适合我。

    最后一个选项看起来最好,但是我找不到我的活动名称

    这是我的清单数据的一部分:

    <activity android:launchMode="standard">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="air.com.developer.appname" />
        </intent-filter>
    </activity>
    

    如果我尝试向android:name添加<activity />属性,我会:

    error 404: Android attribute android:name is not allowed to be overridden
    

    找出默认android:name属性的任何方法?或者关于如何做到这一点的任何其他建议? 感谢。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Flash Builder,它会自动为您的活动命名。对于intance,它为我的活动提供了.AppEntry的名称,所以对于第三种情况(意图是URI)我必须输入以下内容:

    var url:String = ("intent:#Intent;" +
              "action=android.intent.action.MAIN;" +
              "category=android.intent.category.LAUNCHER;" +
              "launchFlags=0x10000000;" +
              "component=sebastianT.app.package/.AppEntry;" +
              "end";
    navigateToURL(new URLRequest(url));

我希望这会有所帮助。

修改

我下载了一个名为Memory Usage(https://play.google.com/store/apps/details?id=mem.usage&hl=es_419)的应用程序,我可以使用以下代码从我的Air应用程序中打开它:

            var url:String = ("intent:#Intent;" +
                "action=android.intent.action.MAIN;" +
                "category=android.intent.category.LAUNCHER;" +
                "component=mem.usage/.activity.MainActivity;" +
                "end");
            navigateToURL(new URLRequest(url));