Je travaille sur le scanner de codes à barres en utilisant ZxingScannerView.J'ai besoin d'éteindre le flash pendant la numérisation mais le composant de la caméra est obsolète, donc y a-t-il un autre moyen d'y parvenir? pour désactiver flash zxingscanner.Thanks à l'avanceComment éteindre le flash de manière permanente dans la vue du scanner Zxing?
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.zxing.Result;
import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class WorkOut extends AppCompatActivity implements ZXingScannerView.ResultHandler {
Integer response = 0;
int currentIndex = 0;
private ZXingScannerView mScannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScannerView = new ZXingScannerView(this);
Camera camera =Camera.open();
Camera.Parameters p;
p = camera.getParameters();
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
CameraConfigurationUtils.setTorch(p,false);
FrameLayout frameLayout = new FrameLayout(this);
FrameLayout.LayoutParams mainParam = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
frameLayout.setLayoutParams(mainParam);
//end 3
scanButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent refresh = new Intent(WorkOut.this, MposHomeScreen.class);
startActivity(refresh);
}
});
frameLayout.addView(mScannerView);
frameLayout.addView(scanButton);
setContentView(frameLayout);
}
private void checkPermissions() {
try {
for (int i = currentIndex; i < permissions.length; i++) {
currentIndex = currentIndex + 1;
int result = ContextCompat.checkSelfPermission(this, permissions[i]);
if (result == PackageManager.PERMISSION_GRANTED) {
} else {
requestPermission(permissions[i]);
return;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Activity activity = this;
Context context = this;
String[] permissions = new String[]{Manifest.permission.CAMERA};
private void requestPermission(String permission) {
ActivityCompat.requestPermissions(activity, new String[]{permission},
101);
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case 101:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
checkPermissions();
} else {
try {
} catch (Exception e) {
e.printStackTrace();
}
}
break;
}
}
@Override
public void onResume() {
super.onResume();
if (response == 1) {
mScannerView = null;
mScannerView = new ZXingScannerView(this);
setContentView(mScannerView);
response = 0;
}
mScannerView.setResultHandler(this);
mScannerView.startCamera();
}
@Override
public void onDestroy() {
super.onDestroy();
mScannerView.stopCamera();
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("ani", "onrestart");
}
@Override
public void handleResult(Result rawResult) {
Toast.makeText(getApplicationContext(), "Scanned", Toast.LENGTH_SHORT).show();
mScannerView.resumeCameraPreview(this);
}
}
Chaque fois que le scanner est mis au point, le flash s'éteint et se rallume lors de la mise au point. Pourquoi cela arrive-t-il? – UrielUVD
"le scanner se concentre"? Pas clair ... comment obtenez-vous le scanner concentré? –
quand il acquiert le focus ... quand il acquiert le focus ... quand l'image n'est plus floue. Après cela, le scanner s'arrête une seconde et éteint la lampe de poche, perd la mise au point et rallume la lumière et ainsi de suite. Pourquoi cela arrive-t-il? – UrielUVD