fix(android): 移除未使用的权限声明并添加硬件支持检查

移除AndroidManifest.xml中不再需要的权限声明和库引用
在RedScanner.java中添加硬件支持检查,当设备不支持时返回错误信息
This commit is contained in:
2025-06-30 18:36:09 +08:00
parent 3fc2674ac7
commit 4eac6f503f
2 changed files with 15 additions and 11 deletions

View File

@@ -17,12 +17,5 @@
<lib-file src="src/android/libsref/ScannerAPI.jar" />
<config-file target="AndroidManifest.xml" parent="/manifest/application">
<uses-library android:name="android.scanner.library"/>
</config-file>
<config-file target="AndroidManifest.xml" parent="/*">
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</config-file>
</platform>
</plugin>

View File

@@ -20,19 +20,30 @@ public class RedScanner extends CordovaPlugin implements DecodeInfoCallBack, Sta
private CallbackContext cb;
private Scanner scanner;
private boolean isOpen = false;
private boolean notSupported = true;
@Override
protected void pluginInitialize() {
super.pluginInitialize();
scanner = ScannerFactory.getScanner(cordova.getContext());
scanner.setDecodeInfoCallBack(this);
scanner.setStatusCallBack(this);
isOpen = scanner.open();
try{
scanner = ScannerFactory.getScanner(cordova.getContext());
scanner.enable();
scanner.setDecodeInfoCallBack(this);
scanner.setStatusCallBack(this);
isOpen = scanner.open();
} catch (RuntimeException e) {
Log.e("SCAN_PLUGIN", "pluginInitialize: "+e.getMessage());
notSupported = true;
}
}
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if(notSupported) {
callbackContext.error("硬件设备不支持此功能!");
return false;
}
if("scan".equals(action)) {
cb = callbackContext;
if(!isOpen) {