アプリが起動し、デバイスカメラを検出できないとします。アプリがカメラを検出できないときにダイアログメッセージを表示するにはどうすればいいですか? (アンドロイド)
は、その後、私はnot find camera!!
ダイアログ
を表示したい私は、でUnhandledExceptionHandler
のonCreate
を使用するようにすると、それが良いだろう正しいか、他の何かだと思いますか?
アプリが起動し、デバイスカメラを検出できないとします。アプリがカメラを検出できないときにダイアログメッセージを表示するにはどうすればいいですか? (アンドロイド)
は、その後、私はnot find camera!!
ダイアログ
を表示したい私は、でUnhandledExceptionHandler
のonCreate
を使用するようにすると、それが良いだろう正しいか、他の何かだと思いますか?
Camera.open()
をtry ... catchにラップできます。 setParameters()などの他のカメラAPIもRuntimeExceptionをスローする可能性があります。
それは...一つの巨大な試しに)あなたの活動ののonCreate(のすべてをラップするためにキャッチ良い考えではありません:あなたはカメラが故障した場合でも、それはダイアログをホストすることができ、少なくともように活動が正しく、作成した取得したいです。
ところで、Camera.open()
をonCreate()
から呼び出すのではなく、むしろuse a background Handler threadを呼び出すことをお勧めします。
はまた、あなたはまた、このようにそれを行うことができます。
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;
}
}
}