FAIL in THAI 2.4

ขอรวม เรื่องราวของ FAIL in THAI รุ่น 2.3 เข้าด้วยกันแล้วกันนะครับ สำหรับรุ่น 2.3 ได้เพิ่มระบบส่งเฟลผ่านทางอีเมลเข้าไปด้วย ซึ่งเป็นวิธีการที่ง่ายที่สุด เพราะ Android เตรียมความสามารถส่งเมลมาให้อยู่แล้ว

การส่งเมลสามารถเรียกใช้ intent ได้ 2 ตัว คือ intent.ACTION_SEND และ intent.ACTION_SENDTO

intent.ACTION_SEND จะเรียกใช้ฟังชั่นต่าง ๆ ได้ง่ายกว่า แต่มีข้อเสียคือ เมื่อเรียกแล้ว แอพอื่น ๆ ที่ไม่เกี่ยวกับเมล แต่สามารถส่งข้อมูลได้ ก็จะถูกรวมมาด้วย

  1. Intent mail = new Intent(Intent.ACTION_SEND);
  2. mail.setType("text/plain");
  3. mail.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@example.com"});
  4. mail.putExtra(Intent.EXTRA_SUBJECT, "subject here");
  5. mail.putExtra(Intent.EXTRA_TEXT, "body text");
  6. mail.putExtra(Intent.EXTRA_STREAM, fileUri);
  7. startActivity(Intent.createChooser(mail, "Send email..."));

ส่วน intent.ACTION_SENDTO จะต้องสร้าง URI ที่ประกอบไปด้วยที่อยู่อีเมลหัวเรื่องเมล รวมทั้งเนื้อหาอีเมลที่ถูกต้อง หากข้อความยาว ๆ ดูจะยุ่งยากไปสักหน่อย แต่มีข้อดีตรงที่ intent นี้จะเรียกเฉพาะแอพเมลขึ้นมาเท่านั้น

  1. Intent mail = new Intent(Intent.ACTION_SENDTO);
  2. mail.setType("text/plain");
  3. mail.setData(Uri.parse("mailto:email@example.com?subject=yourSubject&body=this%20is%20test%20body"));
  4. mail.putExtra(Intent.EXTRA_STREAM, fileUri);
  5.  
  6. startActivityForResult(Intent.createChooser(mail, getString(R.string.sender_intent)), REQUEST_MAIL);

วิธีแก้ปัญหาคือ รวมทั้ง 2 วิธีการเข้าด้วย

  1. Intent mail = new Intent(Intent.ACTION_SENDTO);
  2. mail.setType("text/plain");
  3. mail.setData(Uri.parse("mailto:email@example.com"));
  4. mail.putExtra(Intent.EXTRA_SUBJECT, "subject here");
  5. mail.putExtra(Intent.EXTRA_TEXT, "message here");
  6. mail.putExtra(Intent.EXTRA_STREAM, fileUri);
  7.  
  8. startActivityForResult(Intent.createChooser(mail, getString(R.string.sender_intent)), REQUEST_MAIL);

ส่วนในรุ่น 2.4 มีคนต้องการให้ดูรูปใหญ่ได้ เลยได้เพิ่มเข้ามาตามการร้องขอ ผมค้นหาวิธีการอยู่นานเหมือนกัน หลายคนแนะนำให้ใช้ WebView แต่มันมีจุดอ่อนอยู่หลายจุด ผมรับปัญหานั้นไม่ได้ อีกหลายคนแนะนำให้เขียนฟังชั่นในการซูมเข้าออก และย่อขยายเอง ผมลองทำจากตัวอย่างโค้ดที่ให้มา ผลที่ได้ยังไม่เป็นที่น่าพอใจนัก แม้ว่ามันจะซูมได้ก็จริง แต่ยังติดปัญหาตรงรูปที่ดาวโหลดมามันใหญ่เกินไป ต้องคำนวนอะไรอีกหลายอย่าง ทำให้วิธีนี้ไม่น่าประทับใจนัก

ผมหยุดค้นหาวิธีไปหลายวัน จนวันนี้มีคนแนะนำให้ลองใช้ ImageViewZoom ผมลองเอามาแทนที่ ImageView ที่มีอยู่ในโค้ด และทดลองดูพบว่า มันสามารถทำงานได้ทันที โดยไม่ต้องแก้ไขอะไรเพิ่ม ก็เลยเลือกใช้ตัวนี้

ป.ล. ตั้งแต่เขียนแอพนี้มา fail.in.th ก็เปลี่ยนเฟลาธิการ แถมเฟลก็ยังน้อยลงเรื่อย ๆ มันเป็นเรื่องบังเอิญใช่ไหม...

FAIL in THAI, Android App for browse fail.in.th

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.