首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 啟動相機 Intent 空指針異常:使用正確的 Action 常數

     編輯:程式設計綜合問答

使用字串 "android.media.action.IMAGE_CAPTURE" 建立 Intent 易拼寫錯誤,導致 EXTRA_OUTPUT 附加失敗。應使用 MediaStore 定義的常數。

修正程式碼

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(intent, TAKE_PICTURE);

onActivityResult 處理

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == TAKE_PICTURE && resultCode == RESULT_OK) {
        // 照片已儲存至 fileUri
        Toast.makeText(this, "Image saved to:\n" + fileUri, Toast.LENGTH_LONG).show();
    }
}

關鍵點

  • 使用 MediaStore.ACTION_IMAGE_CAPTURE 避免字串錯誤。
  • fileUri 必須為有效 Uri,指向可寫入路徑(如 getExternalFilesDir)。
  • Android 7.0+ 需使用 FileProvider 產生 content:// Uri。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved