2016-05-30 7 views
1

アプリが起動し、デバイスカメラを検出できないとします。アプリがカメラを検出できないときにダイアログメッセージを表示するにはどうすればいいですか? (アンドロイド)

は、その後、私はnot find camera!!ダイアログ

を表示したい私は、UnhandledExceptionHandlerのonCreate

を使用するようにすると、それが良いだろう正しいか、他の何かだと思いますか?

答えて

0

Camera.open()try ... catchにラップできます。 setParameters()などの他のカメラAPIもRuntimeExceptionをスローする可能性があります。

それは...一つの巨大な試しに)あなたの活動ののonCreate(のすべてをラップするためにキャッチ良い考えではありません:あなたはカメラが故障した場合でも、それはダイアログをホストすることができ、少なくともように活動が正しく、作成した取得したいです。

ところで、Camera.open()onCreate()から呼び出すのではなく、むしろuse a background Handler threadを呼び出すことをお勧めします。

0

はまた、あなたはまた、このようにそれを行うことができます。

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; 
     } 
    } 

} 
関連する問題