2016-11-30 5 views
0

Я делаю приложения, используя Appcelerator (Titanium SDK). и у меня проблема при открытии камеры, я уже установил разрешение камеры в tiapp.xml. И я попробовал использовать источник на кухне Раковина титана.Appcelerator Android Камера всегда делает силу приложения закрытой

Вот мой код

var win; 

function fireUpTheCamera() { 
    if (Ti.Platform.osname === 'android'|| Ti.Platform.osname == "iphone" || Ti.Platform.osname == 'ipad') { 
     win.removeEventListener('focus', fireUpTheCamera); 
    } 
    Titanium.Media.showCamera({ 

     success:function(event) { 
      var cropRect = event.cropRect; 
      var image = event.media; 

      Ti.API.debug('Our type was: '+event.mediaType); 
      if(event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) 
      { 
       var imageView = Ti.UI.createImageView({ 
        width:win.width, 
        height:win.height, 
        image:event.media 
       }); 
       win.add(imageView); 
      } 
      else 
      { 
       alert("got the wrong type back ="+event.mediaType); 
      } 
     }, 
     cancel:function() { 
     }, 
     error:function(error) { 
      // create alert 
      var a = Titanium.UI.createAlertDialog({title:'Camera'}); 

      // set message 
      if (error.code == Titanium.Media.NO_CAMERA) 
      { 
       a.setMessage('Please run this test on device'); 
      } 
      else 
      { 
       a.setMessage('Unexpected error: ' + error.code); 
      } 

      // show alert 
      a.show(); 
     }, 
     saveToPhotoGallery:true, 
     allowEditing:true, 
     mediaTypes:[Ti.Media.MEDIA_TYPE_PHOTO] 
    }); 
} 

function cam_basic(_args) { 
    win = Titanium.UI.createWindow({ 
     title:_args.title 
    }); 
    if (Ti.Platform.osname === 'android'|| Ti.Platform.osname == "iphone" || Ti.Platform.osname == 'ipad') { 
     win.addEventListener('focus', fireUpTheCamera); 
    } else { 
     fireUpTheCamera(); 
    } 
    return win; 
}; 

module.exports = cam_basic; 

, когда я закончу съемки изображения и нажмите кнопку OK, это всегда перезапускать приложение без каких-либо сообщений об ошибках, а также в журнале.

Я использую SDK 6.0.0GA.

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

+0

При удалении кода в обратном вызове он все еще работает? –

+0

@RenePot Я пытаюсь удалить обратный вызов и все еще принудительно закрываю без получения ошибок. –

ответ

1

Перед розжига камеры вы должны спросить конечного пользователя для разрешений. Я использую этот фрагмент, и он работает с Ti-5.4.0.

+0

@ gerber-hofman Я использовал этот сниппет и не работал, после того, как сделал снимок, приложения всегда разбивались и перезапускались. –

+2

Можете ли вы попробовать установить свойство allowEditing в false и повторить попытку? У меня были проблемы с этим свойством, когда на Android установлено значение true. – Garre

0

С Titanium sdk 5.1 вам необходимо запросить разрешение на запуск, а также использовать камеру.

Смотрите здесь: http://docs.appcelerator.com/platform/latest/#!/api/Titanium.Media-method-requestCameraPermissions

+0

вопросы должны быть добавлены как комментарий, а не ответ;) Также Android был добавлен как тег, поэтому вы предпочли правильно –

+0

Спасибо. Отредактированный мой ответ – nsndvd