Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2022, 17:49   #1
Илья7777
Новичок
Джуниор
 
Регистрация: 15.07.2022
Сообщений: 3
По умолчанию Определить номер телефона входящего звонка

Всем доброго времени суток.

Устройство или ОС, прошивка: Android

Уже всяко разно пробовал, напишу самый простой вариант, всё равно результат один и тот же, т.е. вместо номера телефона возвращается NULL.

AndroidManifest.xml

.......
<uses-permission android:name="android.permission.RE AD_PHONE_STATE"/>
<uses-permission android:name="android.permission.CA LL_PHONE" />

........

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

</intent-filter>
</receiver>

InterceptCall.java

public class InterceptCall extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

ITelephony telephonyService;
try {
String state = intent.getStringExtra(TelephonyMana ger.EXTRA_STATE);
String number = intent.getExtras().getString(Teleph onyManager.EXTRA_INCOMING_NUMBER);

Toast.makeText(context, number, Toast.LENGTH_SHORT).show();

} catch (Exception e) {
e.printStackTrace();
}
}
}

number, всегда NULL

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ma in);


if(ContextCompat.checkSelfPermissio n(MainActivity.this,
Manifest.permission.READ_PHONE_STAT E) != PackageManager.PERMISSION_GRANTED) {
if(ActivityCompat.shouldShowRequest PermissionRationale(MainActivity.th is,
Manifest.permission.READ_PHONE_STAT E)) {
ActivityCompat.requestPermissions(M ainActivity.this,
new String[]{Manifest.permission.READ_PHONE_STA TE}, 1);
} else {
ActivityCompat.requestPermissions(M ainActivity.this,
new String[]{Manifest.permission.READ_PHONE_STA TE}, 1);
}
} else {
//что-нибудь
}
}


программа при запуске спрашивает разрешения, ей разрешаю, а дальше возвращает NULL.
Илья7777 вне форума Ответить с цитированием
Старый 15.07.2022, 18:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,265
По умолчанию

ен вижу у вас READ_CALL_LOG
p51x вне форума Ответить с цитированием
Старый 16.07.2022, 05:23   #3
Илья7777
Новичок
Джуниор
 
Регистрация: 15.07.2022
Сообщений: 3
По умолчанию

Сделал так:
<uses-permission android:name="android.permission.RE AD_PHONE_STATE" />
<uses-permission android:name="android.permission.PR OCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.RE AD_CALL_LOG"/>
....
<receiver android:name=".PhoneStateReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action .PHONE_STATE" />
<action android:name="android.intent.action .NEW_OUTGOING_CALL"/>
<action android:name="android.intent.action .READ_CALL_LOG"/>
</intent-filter>
</receiver>
Илья7777 вне форума Ответить с цитированием
Старый 16.07.2022, 05:23   #4
Илья7777
Новичок
Джуниор
 
Регистрация: 15.07.2022
Сообщений: 3
По умолчанию

Всё равно NULL
Илья7777 вне форума Ответить с цитированием
Старый 04.01.2023, 08:58   #5
Comwad
Новичок
Джуниор
 
Регистрация: 04.01.2023
Сообщений: 1
По умолчанию

Добрый день.

Столкнулся с такой же проблемой .

String incomingNumber = intent.getStringExtra(TelephonyMana ger.EXTRA_INCOMING_NUMBER);
Возвращает Null

Вам не удалось найти причину проблемы ?
Comwad вне форума Ответить с цитированием