我如何使用Sencha Cmd为带有前置摄像头支持的Google Nexus 7打包Sencha Touch 2.2应用程序?
如果直接将其安装在设备上,则我可以运行该应用程序并拍摄精美的照片。但使用App Store时,该应用程序不适用于Nexus 7,因为Google认为该应用程序需要后置摄像头。
查看使用功能清单,我应该在required:false
功能上设置CAMERA
,但是清单文件是由Cmd基于packager.json
生成的。Packager.json
包括"permissions": ["CAMERA"]
,但在包装槽Sencha Cmd时看不到任何选项将其设置为可选。
相机已在应用程序中使用,但不是应用程序的必需部分,所以我希望该应用程序与Nexus 7等无后置摄像头设备兼容(通过Google Play商店)。
PhoneGap可能解决了这个问题,但是当前不是一个选择,因为我使用了其他Cmd / Native功能。
[Sencha CMD使用模板文件C:\ Users \ USERNAME \ bin \ Sencha \ Cmd \ 3.1.1.274 \ stbuild \ st-res \ android \ AndroidManifest.xml
该文件很可能用于字符串格式功能,以生成最终的未编译清单。
我发现(至少在最新版本中,我可以简单地将正确的标签添加到模板文件中,然后从应用程序packager.json文件中删除配置。从packager.json中删除Camera配置很重要,以防止重复。由于特权配置已从packager.json中删除,因此您必须将特权和功能标签手动添加到清单模板中。在此示例中,我还添加了自动对焦,但是目前,如果您使用相机,Google会自动为此功能投放广告。
[在编译其他应用程序时,如果其他应用程序不需要相机特权,以及在更新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>