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