[英]Android Default Video Camera Intent Opens Image Camera
我正在嘗試使用以下代碼從我的應用程序打開android默認攝像機:
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
但是在我的兩部手機(三星Note 2和Google Pixel)上,它卻打開了攝像頭。 我的清單中有此許可:
<uses-permission android:name="android.permission.CAMERA"/>
任何想法導致此問題的原因是什么? 我還要求在運行時授予許可。
您必須添加下一個代碼。 設備具有Android 6.0或更高版本。
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
}
如果您的應用擁有使用存儲的權限,我們將打開存儲。
如果您的應用沒有使用存儲的許可,我們將打開系統對話框。 您可以在onRequestPermissionsResult中看到的對話框的結果。 (您必須在“活動”中覆蓋它)。
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == 2) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
}
}
}
我認為您必須提取下一行到private方法。
private void takePhoto() {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
}
有關更多信息,請參見: https : //developer.android.com/training/permissions/requesting.html
添加關注權限CAPTURE_SECURE_VIDEO_OUTPUT和CAPTURE_VIDEO_OUTPUT
Android 6.0及更高版本需要在運行時詢問權限。 在此處閱讀官方文檔: https : //developer.android.com/training/permissions/requesting.html
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.