สำหรับ Android 11 คุณสามารถเพิ่มบล็อก queries
ต่อไปนี้ใน AndroidMainfest.xml
ของโปรเจ็กต์เพื่อแก้ปัญหาได้:
<manifest package="com.example.app"> <queries> <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> </queries> ... </manifest>
คุณสามารถใช้ ID ของแอพบน Facebook ได้ในแอพ Android หลายแอพ เพียงใช้ ID ของแอพเดียวกันในแอพอื่นในการเข้าสู่ระบบ การแชร์ และการดำเนินการอื่นๆ
สำหรับการเชื่อมโยงตรงและการเปิดแอพผ่านการแจ้งเตือนหรือผ่านช่องทางอื่น เราจะสนับสนุนเฉพาะการผสมชื่อจากชื่อ/คลาสแพ็คเกจเดียวเท่านั้น
หากต้องการความช่วยเหลือในการทำดีปลิงก์หลายแอพ โปรดดู ลิงก์ที่ไปยังแอพ
คุณสามารถเขียนทับสตริงใน Facebook SDK สำหรับ Android ได้โดยการระบุคำแปลในไฟล์ strings.xml
ของคุณในระบบภาษาที่ต้องการ
ไฟล์ strings.xml
ในไดเรกทอรี facebook/res/values/
ประกอบด้วยสตริงทั้งหมดที่ SDK ใช้ ชื่อแหล่งข้อมูลสตริงควรอ่านแล้วเข้าใจได้ทันที
สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือสำหรับผู้พัฒนา Android: การแปลเป็นภาษาท้องถิ่นโดยใช้แหล่งข้อมูล
คุณสามารถดาวน์โหลด SDK เวอร์ชั่นก่อนหน้าได้ที่ SDK downloads
ทุกรีลีสของ Facebook SDK สำหรับ Android ที่มีกล่องการแชร์แบบเนทีฟทั้งหมดมี APK สำหรับแอพ Facebook ด้วย
APK จะอยู่ในการดาวน์โหลด SDK จนถึงเวอร์ชั่น 3.14.1 หลังจากเวอร์ชั่นนี้จะต้องดาวน์โหลดแยกจากกัน คุณสามารถหา APK ได้ใน[เพจดาวน์โหลด]ของเรา(/docs/android/downloads)
เพียงติดตั้ง Facebook APK ในโปรแกรมจำลองหรืออุปกรณ์ Android ของคุณแล้วทำการทดสอบกล่องการแชร์แบบเนทีฟจากแอพของคุณ
โดยปกติแล้วไลบรารีของ Android จะสามารถใช้ BuildConfig.DEBUG
เพื่อระบุว่าแอพอยู่ในโหมดการแก้ไขจุดบกพร่องหรือไม่ได้ อย่างไรก็ตาม เนื่องจากจุดบกพร่องใน Gradle ไลบรารีของ Android จึงมีการสร้างขึ้นพร้อมการตั้งค่า DEBUG
เป็นเท็จ ในการแก้ไขปัญหานี้ มีวิธีการ FacebookSdk.setIsDebugEnabled(boolean)
ที่ให้คุณสามารถตั้งค่าโหมดการแก้ไขจุดบกพร่องจากแอพของคุณได้โดยตรง และเป็นการเปิดใช้งานการบันทึกการแก้ไขจุดบกพร่องจาก SDK
นอกจากนี้คุณยังตั้งค่าพฤติกรรมการบันทึกได้ด้วย FacebookSdk.addLoggingBehavior(LogginBehavior)
เพื่อเปิดใช้งานการบันทึกสำหรับหมวดหมู่ต่างๆ ของข้อความ โปรดดูข้อมูลอ้างอิง SDK สำหรับ Android, LoggingBehavior
กล่องการแชร์จะทำการเรียกกลับไปยัง onSuccess
และ onCancel
เมื่อผู้ใช้ดำเนินการ
onSuccess
เมื่อผู้ใช้แชร์สำเร็จ นอกจากนี้ยังมี postId
in the Sharer.Result
ในคลาส publish_actions
หากผู้ใช้ให้สิทธิ์การอนุญาต publish_actions
กับแอพ หากผู้ใช้ดังกล่าวไม่ได้เข้าสู่ระบบด้วยการเข้าสู่ระบบด้วย Facebook วิธีการนี้ยังจะได้รับการเรียกหากผู้ใช้คลิก ยกเลิก onCancel
เมื่อมีผู้คลิกที่ปุ่ม X
ของกล่องการแชร์ หรือหากผู้ใช้เข้าสู่ระบบด้วยการเข้าสู่ระบบด้วย Facebook แล้วคลิก ยกเลิกเมื่อส่งคำขอสิทธิ์การเผยแพร่ คุณอาจได้รับข้อผิดพลาด ดังนี้
ข้อผิดพลาดนี้หมายความว่าแอพของคุณพยายามส่งคำขอสิทธิ์การอนุญาตใหม่ก่อนที่คำขอเดิมจะดำเนินการเสร็จสิ้น คำขอสิทธิ์การอนุญาตทั้งหมดจะไม่มีการประสานเวลา และคุณจะไม่สามารถส่งคำขอสิทธิ์การอนุญาตใหม่ได้จนกว่าคำขอเดิมจะดำเนินการจนเสร็จสิ้น
ดูแอพตัวอย่างของเราที่มากับ SDK เช่น Scrumptious หรือ Hello Facebook เพื่อดูว่าจะทำการส่งคำขอใหม่ได้อย่างไรตามขั้นตอนต่างๆ มากมาย
หากไม่มีข้อผิดพลาดในบันทึก สาเหตุของปัญหาอาจเกิดจากการไม่ดำเนินการตามคำขอ หากต้องการดำเนินการ GraphRequest
ให้เรียกวิธีการ executeAsync
ในการเข้าสู่ระบบหรือใช้กล่องการแชร์แบบเนทีฟ คุณต้องบอก Facebook ให้ทราบถึงคีย์ที่คุณใช้ในการเข้าใช้งานแอพของคุณ
ซึ่งเป็นแฮชคีย์ที่เป็นแฮช SHA-1 ของคีย์ที่ใช้สำหรับการลงชื่อแอพของคุณ โดยปกติแล้วจะมีคีย์อย่างน้อยสองคีย์ที่แตกต่างกัน โดยคีย์แรกใช้เพื่อพัฒนาและการแก้ไขจุดบกพร่อง และอีกคีย์ใช้สำหรับการเผยแพร่ ตรวจสอบยืนยันว่ามีการเพิ่มทั้งสองค่าในเพจการตั้งค่าของแอพของคุณ
สำหรับข้อมูลเพิ่มเติม โปรดดู การเริ่มต้นใช้งาน SDK สำหรับ Android - สร้างแฮชคีย์สำหรับการพัฒนา
สาเหตุที่พบบ่อยคือ คุณไม่ได้ตั้งค่า ContentProvider
ใน AndroidManifest.xml
ของคุณ ตรวจสอบว่าคุณได้เพิ่มข้อมูลนี้ในไฟล์ AndroidManifest.xml
พร้อมด้วย ID ของแอพแล้ว โปรดดู การแชร์บน Android - ข้อกำหนดที่ต้องทำก่อน