سؤال

لديّ تطبيق مدمج بالفعل وأريد إضافة ميزة يجب أن تبدأ عند انتهاء مكالمة. كيف يمكنني تحقيق ذلك؟ اعتقدت أن الإعلان في بلدي قائمة شيء من هذا القبيل

<activity android:name="Filter">
    <intent-filter>
            <category android:name="android.intent.SOMETHING" />
    </intent-filter>
</activity>

يمكن أن يكون كافيا ، ولكن أي نوع من Intent لا بد لي من وضع المرشح؟

عند النظر في الوثائق ، وجدت فقط النوايا التي تكتشف عند بدء مكالمة.

هل ما أبحث عنه ممكن؟

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

المحلول

يمكنك استعمال ال phonestatelisenter للاستماع إلى التغييرات في حالة الاتصال.

لذلك تستمع إلى الاستماع_call_state يتغيرون.

مع ال OncallStateChanged طريقة.

لذلك عندما تتغير الدولة من Offhook إلى الخمول ، ابدأ تطبيقك

نصائح أخرى

لقد فعلت هذا باستخدام جهاز استقبال البث. أعمال! الرمز يبدو مثل هذا -

Androidmanifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.gopi"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <receiver android:name=".IncomingCallTracker">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>

    </application>
</manifest> 

يشبه مقتطف رمز IncomingCallTracker -

public class IncomingCallTracker extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle bundle = intent.getExtras();

            Set<String> keys = bundle.keySet();
        for (String key : keys) {
                Log.i("MYAPP##", key + "="+ bundle.getString(key));
        }       
    }

}

يمكنك البحث عن مفتاح "الحالة" في الحزمة. عندما تكون قيمتها "خاملة" ، فهذا يعني أن المكالمة قد انتهت ويمكنك تنفيذ أي إجراء تريده بناءً على هذا.

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