سؤال

أقوم ببرنامج لإرسال Calllog إلى خادم، قمت بإنشاء خدمة تجعل استطلاعا لحالة الهاتف بالطريقة التالية. هذه الطريقة تسمى oncreate.

giveacodicetagpre.

طريقة تفصيلها، تحقق مما إذا كانت المكالمة قد بدأت، إذا كانت الحالة الخاصة بها تحصل على مدة المكالمة هذه من Calleg، فأنا أستخدم Calleg لأنني لا أستطيع تحديد متى تبدأ المكالمات الصادرة.

giveacodicetagpre.

قمت بلصق طريقة GetDuration، لقد استخدمتها للحصول على مدة المكالمة في Calleog.

giveacodicetagpre.

مشكلتي هي أن GetDuration لا تحصل على مدة المكالمات الأخيرة، على الرغم من ذلك، فأنا أتذكر الدعوة السابقة. حاولت الانتظار المزيد من الوقت ولكني أتلقى نفس النتيجة.

--- تحرير ---

قمت بتغيير التعليمات البرمجية لاستخدام contentobserver، لكن لدي نفس النتيجة. أقوم بإنشاء المراقب على BroadCastReceiver

giveacodicetagpre.

عند تنفيذ Calllog، ينفذ طريقة GetDuration، و GetDuration الجديدة

giveacodicetagpre.

ومدة المكالمة الأخيرة تستمر خطأ، هذه المدة هي الدعوة السابقة. أنا لا أعرف أنني أستطيع أن أفعل ذلك.

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

المحلول

إضافة contentobserver على سجل المكالمات الذي سيخطرك عندما يتم تغيير أي شيء في Calllog I.E. إذا تمت إضافة مكالمة جديدة إلى سجل المكالمات أو قمت بإزالة سجل المكالمات

تحرير

جرب هذا، احصل على سجل مكالمات جديد بعد انتهاء المكالمة، أحصل على النتيجة الصحيحة مع هذا الرمز

انتظر لمدة 3-4 ثواني بعد انتهاء الاتصال ثم

giveacodicetagpre.

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