2014-12-08 2 views
1

Я пытаюсь сделать снимок с помощью камеры и сохранить путь к изображению в базе данных. Я написал код для съемки с помощью камеры. Камера открывается, а затем отображается сообщение об ошибке, когда камера отменена. Это мой JS код:Ошибка «Камера отменена» в phonegap android

.controller('cameractrl', function($scope, Myfactory,$window,$cordovaSQLite) 
     { 
    alert("cameractrl"); 
    $scope.capturePhoto=function() 
    {               
     navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, 
     sourceType :Camera.PictureSourceType.CAMERA, 
     destinationType: Camera.DestinationType.FILE_URI, }); 
    } 

    function onPhotoDataSuccess(imageURI) { 
     alert("got image file entry: " + fileEntry.fullPath); 

    } 

И я добавил следующее разрешение в AndroidManifest:

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

и в config.xml я добавил это:

<plugin name="Camera" value="org.apache.cordova.CameraLauncher" /> 

Но все-таки камера открывается? и затем он закрывается с предупреждением «Камера отменена». любые решения ???

Вот мой config.xml

<?xml version='1.0' encoding='utf-8'?> 
    <widget id="com.ionicframework.starter" version="0.0.1"  xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 
<preference name="loglevel" value="DEBUG" /> 
<feature name="Keyboard"> 
    <param name="android-package" value="com.ionic.keyboard.IonicKeyboard" /> 
    <param name="onload" value="true" /> 
</feature> 
<feature name="AdMob"> 
    <param name="android-package" value="com.rjfun.cordova.plugin.AdMob" /> 
</feature> 
<feature name="Device"> 
    <param name="android-package" value="org.apache.cordova.device.Device" /> 
</feature> 
<feature name="Camera"> 
    <param name="android-package" value="org.apache.cordova.camera.CameraLauncher" /> 
</feature> 
<feature name="SQLitePlugin"> 
    <param name="android-package" value="org.pgsqlite.SQLitePlugin" /> 
</feature> 
<feature name="File"> 
    <param name="android-package" value="org.apache.cordova.file.FileUtils" /> 
    <param name="onload" value="true" /> 
</feature> 
<feature name="FileTransfer"> 
    <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /> 
</feature> 
<feature name="Media"> 
    <param name="android-package" value="org.apache.cordova.media.AudioHandler" /> 
</feature> 
<name>HelloCordova</name> 
<description> 
    An Ionic Framework and Cordova project. 
</description> 
<author email="[email protected]" href="http://ionicframework.com/"> 
    Ionic Framework Team 
</author> 
<content src="index.html" /> 
<access origin="*" /> 
<preference name="webviewbounce" value="false" /> 
<preference name="UIWebViewBounce" value="false" /> 
<preference name="DisallowOverscroll" value="true" /> 
<preference name="BackupWebStorage" value="none" /> 
<preference name="AndroidPersistentFileLocation" value="Compatibility" /> 
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external" /> 
<plugin name="Camera" value="org.apache.cordova.CameraLauncher" /> 

+0

попробуйте запустить плагин cordova, что вы видите? –

+0

Да, я пробовал плагин cordova, но затем также камера не открыла – Viveka

+0

, что вы видели моего друга, пожалуйста, укажите его здесь. –

ответ

0

Buddy, вам не хватает, чтобы установить: encodingType и MEDIATYPE.

Проверьте мой пример:

var cameraOptions = { quality : quality, destinationType : Camera.DestinationType.DATA_URL, sourceType : Camera.PictureSourceType.CAMERA, allowEdit : true, encodingType: Camera.EncodingType.JPEG, mediaType: Camera.MediaType.PICTURE, targetWidth: targetWidth, targetHeight: targetHeight, saveToPhotoAlbum: saveToPhotoAlbum };

Я бы посоветовал использовать JPEG вместо PNG.

3

Этот вопрос очень старый, но я получил здесь поиск этой проблемы сегодня. Для других пользователей с той же проблемой, добавьте в config.xml:

<preference name="AndroidLaunchMode" value="standard"/> 

From this question.

Смежные вопросы