0

ユーザーが写真を撮ることができるアプリをリリースしました。写真をキャプチャするためにこれを行います:

File file = new File( _path );
Uri outputFileUri = Uri.fromFile( file );   
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );      
startActivityForResult( intent, 0 );

また、マニフェストにこの許可を追加しました:

<uses-permission android:name="android.permission.CAMERA" />

Android2.3.5でアプリをテストしましたが、Android3.0正常に動作しますが、でアプリを実行するAndroid4.0.3とクラッシュします。

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.media.action.IMAGE_CAPTURE (has extras) }

どうすればこの問題を解決できますか?

4

2 に答える 2

4

いくつかのことが起こり得る

  1. デバイスにカメラがない可能性があります
  2. デバイスにSDカードがありません

あなたのケースは上記のいずれかを満たしていますか?

于 2013-03-22T08:08:48.217 に答える
3

あなたの

1.タブレットにはカメラが付いています(タブレットを使用している場合)。2. 電話にはカメラがあります。 3. SD カードがインストールされていません。

以下をマニフェストに追加します。

   <uses-feature android:name="android.hardware.camera" />

アプリが Google Play からダウンロードされるのを防ぎます。 http://developer.android.com/google/play/filters.html

http://developer.android.com/guide/topics/manifest/uses-feature-element.htmlも確認してください

デバイスにカメラがあるかどうかを確認するには。

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);

    Context context = this;
    PackageManager packageManager = context.getPackageManager();

    // if device support camera?
    if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
        //yes
        Log.i("camera", "This device has camera!");
    }else{
        //no
        Log.i("camera", "This device has no camera!");
    }


}
}
于 2013-03-22T08:18:44.267 に答える