霍尼韦尔EDA50p,在返回桌面,点击了新的扫描之后,出现再进入程序(新打开一样)无法扫描,从而导致问题,添加了一个stop2的方法,针对霍尼韦尔eda50p,不进行销毁,在真正销毁的方法关闭服务,还是存在程序返回桌面无法扫描问题,但是退出程序之后,新打开程序可以扫描
This commit is contained in:
@ -11,7 +11,7 @@ android {
|
||||
minSdk 28
|
||||
targetSdk 28
|
||||
versionCode 1
|
||||
versionName "1.7"
|
||||
versionName "1.8"
|
||||
|
||||
// 1.0 IDATA广播模式处理
|
||||
// 1.1 霍尼韦尔的监听修改(扫描网站二维码跳出程序,监听失效,调整)、斑马PDA广播模式设置
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
<uses-permission android:name="com.symbol.emdk.permission.EMDK"/>
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="com.honeywell.decode.permission.DECODE" />
|
||||
<uses-permission android:name="android.permission.STOP_SERVICE" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
|
||||
@ -208,7 +208,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{
|
||||
// voiceEngine.reload();
|
||||
super.onResume();
|
||||
if (adapter != null) {
|
||||
adapter.stop();
|
||||
adapter.stop2();
|
||||
adapter.start();
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,4 +29,8 @@ public interface Adapter{
|
||||
*/
|
||||
public void stop();
|
||||
|
||||
public default void stop2() {
|
||||
stop();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
package chaoran.business.adapter;
|
||||
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Build;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import chaoran.business.activity.ResultListener;
|
||||
import chaoran.business.service.ScanServiceEDA50P;
|
||||
import chaoran.business.service.ScanServiceZEBRA;
|
||||
@ -31,10 +34,16 @@ public class HoneywellAdapter implements Adapter {
|
||||
openContinueScan();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop2() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
new ScanServiceEDA50P().onDestroy();
|
||||
strategy.exclusiveStrategy();
|
||||
this.stopContinueScan();
|
||||
}
|
||||
|
||||
public class Receiver extends BroadcastReceiver implements Strategy {
|
||||
@ -57,6 +66,36 @@ public class HoneywellAdapter implements Adapter {
|
||||
}
|
||||
}
|
||||
|
||||
public void stopContinueScan() {
|
||||
Class clazz = null;
|
||||
if("eda50p".equals(Build.MODEL.toLowerCase())){ // 扫描正常
|
||||
intent = new Intent(context, ScanServiceEDA50P.class);
|
||||
clazz = ScanServiceEDA50P.class;
|
||||
}else if("eda51".equals(Build.MODEL.toLowerCase())){ // 扫描正常
|
||||
intent = new Intent(context, ScanServiceEDA50P.class);
|
||||
clazz = ScanServiceEDA50P.class;
|
||||
}
|
||||
else if("tc26".equals(Build.MODEL.toLowerCase())){
|
||||
intent = new Intent(context, ScanServiceZEBRA.class);
|
||||
clazz = ScanServiceZEBRA.class;
|
||||
}
|
||||
if (clazz != null && isServiceRunning(clazz)) {
|
||||
context.stopService(intent);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isServiceRunning(Class<?> serviceClass) {
|
||||
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
|
||||
List<ActivityManager.RunningServiceInfo> runningServices = manager.getRunningServices(Integer.MAX_VALUE);
|
||||
|
||||
for (ActivityManager.RunningServiceInfo service : runningServices) {
|
||||
if (serviceClass.getName().equals(service.service.getClassName())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void openContinueScan(){
|
||||
|
||||
if("eda50p".equals(Build.MODEL.toLowerCase())){ // 扫描正常
|
||||
|
||||
Reference in New Issue
Block a user