Pracuję nad aplikacją, która wymaga skanowania kodu QR i klikania obrazów, ale czasami zdarza się, że aplikacja aparatu ulega awarii i mówi, że kamera z Androidem przestała działać, a urządzenie musi zostać ponownie uruchomione w celu prawidłowego działania.Jak zwolnić kamerę po zakończeniu aktywności na Androidzie?
Chcę móc zwolnić kamerę z mojej aktywności, aby w późniejszym czasie uniknąć awarii. Potrzebna pomoc!
KOD przypadku skanowania:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
catch(Exception e)
{
// ERROR
}
}
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
showPass(contents);
}
else if (resultCode == RESULT_CANCELED)
{
showFail();
}
}
}
KOD za klikanie obrazku:
public void takephoto(View v)
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == CAMERA_REQUEST)
{
Bitmap photo = (Bitmap) data.getExtras().get("data");
// some action.
}
}
Co, jeśli po prostu przekazuję intencję do kamery i aplikacji do skanowania? Jak mam zrobić to samo? –
następnie umieść pierwszy kod w aplikacji do skanowania. – Riser
Wykonaj tę czynność metodą onPause swojej aktywności, a następnie ją tam zwolnij. –