我需要从Android上的另一个Air应用程序打开一个Air应用程序。到目前为止,我尝试了三个选项都失败了:
使用描述here的adobe.utils.ProductManager
打开,但找不到'发布商ID'。这是一篇非常古老的文章,我没有对此抱有希望。
使用andoid:scheme
,可以在浏览器中正常使用,但是从其他Air应用中我得到了“安全沙箱违规”。我将这个与正常链接和重定向页面结合使用。看起来非常不专业,但它确实有效。
navigateToURL(new URLRequest('air.com.developer.appname://'));
使用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));
这些都不适合我。
最后一个选项看起来最好,但是我找不到我的活动名称。
这是我的清单数据的一部分:
<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
属性的任何方法?或者关于如何做到这一点的任何其他建议?
感谢。
答案 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));