я добавил это мой файл манифеста -не в состоянии получить TelephonyManager.CALL_STATE_RINGING
<receiver android:name=".ServiceReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
</uses-permission>
Тогда мой класс службы, как это -
public class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
MyPhoneStateListener phoneListener = new MyPhoneStateListener();
TelephonyManager telephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
}
и мой PhoneStateListener является -
public class MyPhoneStateListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
Log.i("telephony-example", "State changed: " + stateName(state));
}
String stateName(int state) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
Log.d("DEBUG", "***********IDLE********");
return "Idle";
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d("DEBUG", "***********OFFHOOK********");
return "Off hook";
case TelephonyManager.CALL_STATE_RINGING:
Log.d("DEBUG", "***********RINGING********");
return "Ringing";
}
return Integer.toString(state);
}
}
Я могу видеть состояние IDLE.
Но Когда я звоню, я не получаю состояние звонка. Зачем?
Спасибо ... получил звонкий :) Кстати вы знаете, как сделать это приостановить мое приложение, когда звонит телефон, а затем вернуться в приложение, когда телефонный звонок кончено? – nasaa
AFAIK, если ваше приложение запускает действие, его onPause и onStop будут вызваны, чтобы получить активность телефона спереди. Если вы используете службу, я не вижу причины, почему вы хотите приостановить работу, которую вы выполняете. Тем не менее, если вы хотите использовать описанный выше метод, чтобы знать, когда звонит телефон, а затем в зависимости от вашей логики приложения прекратите выполнение работы и возобновите работу позже, но я не понимаю, почему вы сделали бы это из службы! – advantej
проблема в том, что у меня есть песня, но она не останавливается, когда звонит телефон, поэтому я спросил. – nasaa