Захват номера входящего звонка - PullRequest
2 голосов
/ 15 января 2020

ОБНОВЛЕНИЕ 1:

Я нашел проблему! При установке приложения у пользователя не запрашивается разрешение . Я сделал это вручную, и это сработало. Новый вопрос , как мне заставить приложение запрашивать разрешение при запуске?

ОРИГИНАЛЬНЫЙ ТЕКСТ

Я пытаюсь захватить номер входящего вызова, но безрезультатно!

Ошибка не возникает, вот в чем проблема, поэтому я должен упустить некоторые детали!

Здесь, в stackoverflow, есть много тем, но все они очень старые, и ответы не t work ...

AndroidManifest. xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="net.aaa.androidcall">

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

    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

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

    </application>

</manifest>

ServiceReceiver. java

package net.aaaa.androidcall;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.view.Gravity;
import android.widget.Toast;

public class ServiceReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.PHONE_STATE")){
            String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
            String Number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

            Toast toast = Toast.makeText(context, "Number: " +Number+ ", Status: "+ state,Toast.LENGTH_LONG);

            toast.setGravity(Gravity.BOTTOM|Gravity.LEFT,3,0);
            toast.show();
        }
    }
}

Что мне не хватает, что не отображается число в тост?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...