flex 4.6移动项目中的android权限
我为flex项目开发了一个.ane扩展。ane扩展仅适用于android,基本上它启动了android活动。 问题是应用程序启动时会崩溃。我设法查看了我手机上的日志,我看到AdobeAIR正在抱怨,在flex应用程序描述符文件中添加的一些android权限找不到(这些权限添加在我的air app.xml中) 许可的一个例子是:flex 4.6移动项目中的android权限,android,apache-flex,air,flex4,flex4.5,Android,Apache Flex,Air,Flex4,Flex4.5,我为flex项目开发了一个.ane扩展。ane扩展仅适用于android,基本上它启动了android活动。 问题是应用程序启动时会崩溃。我设法查看了我手机上的日志,我看到AdobeAIR正在抱怨,在flex应用程序描述符文件中添加的一些android权限找不到(这些权限添加在我的air app.xml中) 许可的一个例子是: <permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/
<permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
<permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
这是我的呼叫功能:
Intent startActivityIntent = new Intent(context.getActivity(), StartAppActivity.class);
context.getActivity().startActivity( startActivityIntent );
有人能告诉我android的所有权限是否都在flex中得到许可吗?我建议阅读android权限并理解其概念 然后将所需的任务配置添加到air应用程序描述符xml中。 例: MyAir-app.xml应包含:
<!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->
<android>
<manifestAdditions>
<![CDATA[
<manifest android:installLocation="auto">
<!-- SOME other default permissions .... -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- now your required permissions -->
<permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
<permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
....
....
可以在中找到所有Android权限。但是,HTC、Moto等供应商可能会更改系统以添加自己的功能。因此,可能存在一些特定于供应商的权限,如com.htc.launcher.permission.READ\u设置。此外,应用程序可以在Android中定义自己的权限。但是,您的案例似乎只与特定于供应商的权限相关
在清单中,我看到几个特定于供应商的权限:
<uses-permission android:name="com.lge.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.motorola.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.motorola.dlauncher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.fede.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.lge.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="org.adw.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.motorola.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.motorola.dlauncher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.lge.launcher.permission.INSTALL_SHORTCUT"/>
因此,如果Android遇到未知标记,它将跳过该标记
所以我认为这个问题是由Flex将项目构建到apk中时的一些错误造成的。如果你能把你的项目放到网上,我们就能重现这次崩溃,这将是非常有帮助的 我非常理解android权限的概念,但我的问题是,当我在air-app.xml文件中添加这些权限时,我的应用程序崩溃,并且在我的电话日志中显示找不到这些权限。你能发布你的应用程序描述符吗?还有一些java电子代码中的代码?我在android本机应用程序中有相同的权限设置,运行良好。我的问题是,flex android应用程序中允许所有android权限?这是测试代码,它抛出的错误与生产代码相同
<!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->
<android>
<manifestAdditions>
<![CDATA[
<manifest android:installLocation="auto">
<!-- SOME other default permissions .... -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- now your required permissions -->
<permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
<permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
....
<uses-permission android:name="com.lge.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.motorola.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.motorola.dlauncher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.fede.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.lge.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="org.adw.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.motorola.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.motorola.dlauncher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.lge.launcher.permission.INSTALL_SHORTCUT"/>
else if (tagName.equals("uses-permission")) {
sa = res.obtainAttributes(attrs,
com.android.internal.R.styleable.AndroidManifestUsesPermission);
// Note: don't allow this value to be a reference to a resource
// that may change.
String name = sa.getNonResourceString(
com.android.internal.R.styleable.AndroidManifestUsesPermission_name);
/* Not supporting optional permissions yet.
boolean required = sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestUsesPermission_required, true);
*/
sa.recycle();
if (name != null && !pkg.requestedPermissions.contains(name)) {
pkg.requestedPermissions.add(name.intern());
pkg.requestedPermissionsRequired.add(Boolean.TRUE);
}
XmlUtils.skipCurrentTag(parser);