تم تجاهل extra_output على ERIS ، ويؤدي البيانات إلى إرجاع البيانات الخالية على G1

StackOverflow https://stackoverflow.com/questions/4273809

سؤال

لذلك أحاول تشغيل نشاط الكاميرا باستخدام الكود التالي:

//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                      Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);

ثم للتعامل مع النتيجة:

//In onActivityResult()
...
case REQUEST_CAMERA:
  Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
  intent.putExtra(data);
  startActivity(intent);
  CurrentScreen.this.finish();
...

حيث استخدم intent.putExtra(data) لتوصيل صورة نقطية صغيرة إلى النية ، واستخدامها كصورة مصغرة في النشاط التالي ، ومن المفترض أن يتم حفظ الملف الكامل بالحجم كـ /sdcard/image.jpg.

هذا هو السلوك المتوقع (وفقًا للوثائق) ، للحصول على صورة نقطية صغيرة لثلاثية ، وتوفير ملف كبير. ومع ذلك ، عند اختبار هذا على G1 و ERIS ، كنت أرى بعض السلوك الغريب.

على G1:

  • على الرغم من أن ResultCode يعرض result_ok ، فإن بيانات النية التي يتم إرجاعها إلى معالج النتائج لاغية.
  • كما يبدو أن extra_output يتم تجاهله تمامًا ، ليس لدي أي فكرة عن المكان الذي يحفظ فيه الصورة.

على إريس:

  • تعود بيانات النية على ما يرام
  • يتم تجاهل extra_output أيضًا ، لكنه يحفظ الصور إلى متجر الوسائط العادي على /sdcard/dcim/100media

لذا فإن سؤالي هو: هل هناك أي طريقة للحصول على سلوك ثابت لما أحاول القيام به باستخدام نشاط الكاميرا القياسي؟ يمكنني كتابة نشاط مخصص لمحاولة تشغيله بالطريقة التي أريدها ، لكنني أفضل تجنب هذا المسار.

هل كانت مفيدة؟

المحلول

ليس لدي إجابات على سؤالك لأنني جديد في عالم تطوير Java/Android. لكنني أحاول شيئًا مشابهًا لما تفعله ، إلا أنني أريد ببساطة التقاط الصورة ثم إرفاقها برسالة بريد إلكتروني.

لقد قمت بتطبيق جزء من مثالك وتمكنت من التحقق من أن الكاميرا أنشأت الملف الذي حددته وأنه إذا استخدمت نفس اسم الملف للصورة التالية التي تكتب الملف السابق وهو ما أتوقعه.

لكن ما كنت سأقوله حقًا هو أنه ربما يتعين عليك اختبار ما إذا كان بات "/sdcard/..." موجود بالفعل أم لا. كما يمكنك تبسيط العملية عن طريق نقل المسار إلى النشاط التالي.

حظا طيبا وفقك الله،

جيمي إيروين

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top