Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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
flex 4.6移动项目中的android权限_Android_Apache Flex_Air_Flex4_Flex4.5 - Fatal编程技术网

flex 4.6移动项目中的android权限

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"/

我为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.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);