我開發的即時應用程序,我想用相機拍照。 如果我啓動安裝的應用程序,一切正常。但隨着即時應用,我得到以下錯誤:Instant Apps相機意圖
java.lang.SecurityException: Not allowed to start activity Intent { act=android.media.action.IMAGE_CAPTURE launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 }
這裏我的代碼:
AndroidManifest.xml中
<uses-permission android:name="android.permission.CAMERA" />
活動:
private static int CAMERA_REQUEST = 1234;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_goodbye);
findViewById(R.id.mainButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startCamera();
}
});
}
private void startCamera() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST);
}
} else {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
startCamera();
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST) {
Bitmap bmp = (Bitmap)data.getExtras().get("data");
((ImageView)findViewById(R.id.mainImageView)).setImageBitmap(bmp);
}
}
我使用Android 7.0開發設備(三星)。 我檢查了可用的權限和相機是這就是爲什麼它應該工作。 (https://developer.android.com/topic/instant-apps/faqs.html#available-permissions) 在此先感謝。
我正在使用** Android Studio 3.0 Canary 4 ** - Gradle版本:** 4.0 ** - Android插件版本:** 3.0.0-alpha4 ** – Pouicky