Android Sencha Touch本机可选功能与所需权限(Nexus 7上的摄像头)

Android Sencha Touch本机可选功能与所需权限(Nexus 7上的摄像头),android,extjs,sencha-touch-2,google-play,sencha-cmd,Android,Extjs,Sencha Touch 2,Google Play,Sencha Cmd,如何使用Sencha Cmd为Google Nexus 7打包Sencha Touch 2.2应用程序,并支持前置摄像头 如果直接在设备上安装,我可以运行应用程序并拍摄良好的照片。但是使用AppStore,Nexus7无法使用该应用程序,因为谷歌认为该应用程序需要一个后置摄像头 查看uses features清单,我应该在CAMERA功能上设置required:false,但是清单文件是由Cmd基于packager.json生成的。 Packager.json包括“权限”:[“摄像头”]但在通过

如何使用Sencha Cmd为Google Nexus 7打包Sencha Touch 2.2应用程序,并支持前置摄像头

如果直接在设备上安装,我可以运行应用程序并拍摄良好的照片。但是使用AppStore,Nexus7无法使用该应用程序,因为谷歌认为该应用程序需要一个后置摄像头

查看uses features清单,我应该在
CAMERA
功能上设置
required:false
,但是清单文件是由Cmd基于
packager.json
生成的。
Packager.json
包括
“权限”:[“摄像头”]
但在通过Sencha Cmd打包时,我看不到任何选项将其设置为可选

摄像头在应用程序中使用,但它不是应用程序的必需部分,因此我希望应用程序与Nexus 7等无后台摄像头设备兼容(通过Google Play Store)


PhoneGap可以解决这个问题,但目前不是一个选项,因为我使用了其他Cmd/本机功能。

Sencha Cmd使用一个模板文件C:\Users\USERNAME\bin\Sencha\Cmd\3.1.1.274\stbuild\st res\android\android manifest.xml

该文件可能在字符串格式函数中用于生成最终未编译的清单

我发现(至少在最新版本中)我可以简单地将正确的标记添加到模板文件中,并从application packager.json文件中删除配置。 从packager.json中删除摄像头配置非常重要,以防止重复。由于特权配置已从packager.json中删除,因此必须将特权和功能标记手动添加到清单模板中。在本例中,我还添加了自动对焦功能,但目前,如果您使用相机,谷歌会自动为该功能投放广告

当编译不同的应用程序时,如果其他应用程序不需要摄像头权限,以及当Sencha Cmd更新时,请记住更改模板

新线:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"  />

修改后完成AndroidManifext.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%s" android:versionCode="%d" android:versionName="%s">
    <uses-sdk android:minSdkVersion="%s" android:targetSdkVersion="15" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" android:required="false" />
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"  />
%s
    <application android:icon="@drawable/icon" android:label="%s">
        <activity android:name=".STActivity"
            %s
            android:label="%s">
                <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
%s
%s
        </activity>
    </application>
</manifest>

%
%
%

已经提出并回答了类似的问题,但在使用Sencha Cmd时无法直接编辑AndroidManifest。我一直在寻找编辑Cmd使用的模板(stbuild\st res\android\AndroidManifest.xml)的可能性,但权限部分是在编译过程中插入的。