Сделать мое приложение получать уведомления по телефону - PullRequest
0 голосов
/ 27 апреля 2018

Мое приложение должно знать, является ли пользователь текущим по телефону или нет, а затем сделать соответствующий ответ.

Все, что мне нужно знать, находится ли пользователь на телефонном звонке или нет. Мне не нужны никакие другие права для решения каких-либо вопросов, связанных с номером телефона или личной информацией пользователя.

Что я должен сделать, чтобы достичь этого? Нужно ли на это получить разрешение пользователя? enter code here

1 Ответ

0 голосов
/ 27 апреля 2018

Да Сначала добавьте эти разрешения в свой манифест:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

Вы должны использовать Broadcast Receiver с этими фильтрами намерений. android.intent.action.NEW_OUTGOING_CALL android.intent.action.NEW_INCOMING_CALL Вы можете использовать сервис для этого регистра. Примерно так:

@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        registerReceiver(receiver,new IntentFilter("android.intent.action.NEW_OUTGOING_CALL"));
        registerReceiver(receiver2,new IntentFilter("android.intent.action.NEW_INCOMING_CALL"));
        return START_STICKY;
    }

И наш приемник Broadcast вы можете использовать это:

public class CallReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //
        RequestQueue 
        String savedNumber="";
        String savedNumber2= intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
        if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) {
            savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
        }
        Log.e("Saved number","Numara: "+savedNumber);
        Log.e("İt is ","İt is it");
        Log.e("Saved number 2 ",savedNumber2);

    }
}

И, наконец, в вашем файле манифеста вы можете использовать намеренный фильтр в вашем приемнике, например:

<receiver
            android:name=".CallReceiver"
            android:enabled="true"
            android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
            </intent-filter>
        </receiver>
...