2016-05-30 3 views

Antwort

0

Sie können Camera.open() in wickeln versuchen ... fangen. Einige andere Kamera-APIs, einschließlich setParameters(), können auch RuntimeException auslösen.

Es ist keine gute Idee, alle Ihre Aktivität des onCreate() in einem riesigen Versuch zu wickeln ... fangen: Sie die Aktivität korrekt so, auch wenn die Kamera nicht, zumindest erstellt bekommen möchten, dass es den Dialog aufnehmen kann .

Übrigens, die gute Praxis ist nicht Camera.open() von onCreate(), sondern use a background Handler thread zu rufen.

0

Alternativ können Sie es auch tun, wie folgt aus:

public class MainActivity extends Activity { 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
if (!isDeviceSupportCamera()) { 
      Toast.makeText(getApplicationContext(), 
        "Sorry! Your device doesn't support camera", 
        Toast.LENGTH_LONG).show(); 
      // will close the app if the device does't have camera 
      finish(); 
     } 


} 

private boolean isDeviceSupportCamera() { 
     if (getApplicationContext().getPackageManager().hasSystemFeature(
       PackageManager.FEATURE_CAMERA)) { 
      // this device has a camera 
      return true; 
     } else { 
      // no camera on this device 
      return false; 
     } 
    } 

} 
Verwandte Themen