2013-09-03 27 views
8

Varsayılan kamerayı başlatmak istiyorum, ancak başlatıcıdan başlatılmış gibi hareket etmesini istiyorum (sonuçta elde edilen fotoğraf kamera uygulaması tarafından kullanıcının galerisine kaydedilmelidir, uygulamanıza geri gönderilmek yerine). Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); kullanırsam, kamera uygulaması "Tamam? Yeniden Dene?" - UI'yi kullanır ve resmi kaydetmez. Çok sayıda cihaz özel kamera uygulamaları kullandığı için "doğrudan" com.android.camera amacını kullanmamayı tercih ederim. Ben stok galeri3d-app com.android.camera/.Camera uygulayan bir takma ad kullanmak olduğunu gördüm, ama her önceden yüklenmiş üretici kamera uygulaması bunu yapar emin değilim.Varsayılan kamera uygulamasını başlat (geri dönüş yok)

cevap

10

Şimdi bunu böyle uyguladık:

 Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     try { 
      PackageManager pm = mContext.getPackageManager(); 

      final ResolveInfo mInfo = pm.resolveActivity(i, 0); 

      Intent intent = new Intent(); 
      intent.setComponent(new ComponentName(mInfo.activityInfo.packageName, mInfo.activityInfo.name)); 
      intent.setAction(Intent.ACTION_MAIN); 
      intent.addCategory(Intent.CATEGORY_LAUNCHER); 

      startActivity(intent); 
     } catch (Exception e){ Log.i(TAG, "Unable to launch camera: " + e); } 
+2

Not, sen 'Intent.ACTION_MAIN' aktarır ve' ile eylem yerine MediaStore.ACTION_IMAGE_CAPTURE 'uygulamasının fotoğraf çekimi modunda veya "MediaStore.ACTION_VIDEO_CAPTURE" uygulamasının video çekimi modunda başlatılmasını sağlamak için. – pents90

+1

bunu bir arka plan hizmetinden yapıyorsanız, intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK) eklemeniz gerekir; –

+1

Bu cevap çalışmıyor! Kişiler, Youtube ve diğer alakasız uygulamaları açar. – NecipAllef

5

hile olacaktır Bu kod:

Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); 
context.startActivity(intent); 
+0

Bu amaç MediaStore.ACTION_IMAGE_CAPTURE ürününe göre daha üstün görünüyor çünkü önceki, belirli kamera uygulamalarını Fotoğraflar'a özel bir modda açıyor, kullanıcının videoya geçmesine izin vermiyor. MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, aynı sınırlamadan muzdarip görünmüyor. –

İlgili konular