การโทร VoIP บน Android
Pushwoosh รองรับการแจ้งเตือนการโทรสไตล์ VoIP สำหรับ Android โดยใช้โมดูล pushwoosh-calls ซึ่งช่วยให้สามารถใช้งาน UI การโทรแบบเนทีฟและการจัดการวงจรชีวิตโดยใช้ telecom stack ของ Android
1. เพิ่มโมดูล pushwoosh-calls
Anchor link toตรวจสอบให้แน่ใจว่าได้รวม pushwoosh-calls dependency ไว้ในโปรเจกต์ของคุณ
Gradle:
dependencies { implementation 'com.pushwoosh:pushwoosh-calls:<latest-version>'}แทนที่ <latest-version> ด้วยเวอร์ชันปัจจุบันจาก Maven Central
2. ขอสิทธิ์การโทร
Anchor link toขอสิทธิ์ที่จำเป็นในขณะรันไทม์โดยใช้ฟังก์ชันตัวช่วย:
import com.pushwoosh.calls.PushwooshCallSettings;
PushwooshCallSettings.requestCallPermissions();สิ่งนี้จัดการการขอสิทธิ์เช่น
READ_PHONE_NUMBERSซึ่งจำเป็นสำหรับการจัดการการโทรที่เหมาะสม
3. ใช้งาน CallEventListener และลงทะเบียนใน Manifest
Anchor link toเพื่อจัดการการโทรและเหตุการณ์ที่เข้ามา ให้ใช้งานอินเทอร์เฟซ CallEventListener ในแอปของคุณ
ตัวอย่าง Java
Anchor link topublic class DemoCallEventListener implements CallEventListener {
@Override public void onAnswer(@NonNull PushwooshVoIPMessage voIPMessage, int videoState) { // implement this method to navigate to your in-call UI Intent intent = new Intent(context, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); }
@Override public void onReject(@NonNull PushwooshVoIPMessage voIPMessage) { // override this method to handle dismissed calls }
@Override public void onDisconnect(@NonNull PushwooshVoIPMessage voIPMessage) { // override this method to handle disconnected calls }
@Override public void onCreateIncomingConnection(@Nullable Bundle payload) { // this is the earliest point when call notification payload is accessible in your app, // use it to prepare your app UI for user interactions with call notifications }
@Override public void onCallAdded(@NonNull PushwooshVoIPMessage voIPMessage) { // extension method of InCallService, provides customization options for paired Wearable devices }
@Override public void onCallRemoved(@NonNull PushwooshVoIPMessage voIPMessage) { // extension method of InCallService, provides customization options for paired Wearable devices }}AndroidManifest.xml
Anchor link toประกาศคลาส listener ของคุณโดยใช้แท็ก <meta-data>:
<meta-data android:name="com.pushwoosh.CALL_EVENT_LISTENER" android:value="com.pushwoosh.demoapp.DemoCallEventListener" />4. กำหนดค่าการตั้งค่าการโทร (ไม่บังคับ)
Anchor link toใช้ PushwooshCallSettings เพื่อปรับแต่งพฤติกรรมการโทร เสียง และการตั้งค่าการแสดงผล
ตัวอย่างการใช้งาน
Anchor link toimport com.pushwoosh.calls.PushwooshCallSettings
PushwooshCallSettings.setPhoneAccount("com.pushwoosh.voip")PushwooshCallSettings.setPhoneAccountHandle("PushwooshCallHandle")PushwooshCallSettings.setIncomingCallChannelName("Incoming Calls")PushwooshCallSettings.setOngoingCallChannelName("Ongoing Calls")PushwooshCallSettings.setCallSound("custom_ringtone.mp3")