Добавить PhoneStateListener
Я пытаюсь настроить PhoneStateListener
но я получаю, что PhoneCallListener cannot be resolved to a type
.
public class ButtonView extends FrameLayout { PhoneCallListener phoneListener = new PhoneCallListener(); TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); telephonyManager.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE); }
В другом примере я нашел его написано так и работает
public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { // add PhoneStateListener PhoneCallListener phoneListener = new PhoneCallListener(); TelephonyManager telephonyManager = (TelephonyManager) this .getSystemService(Context.TELEPHONY_SERVICE); telephonyManager.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE); }
Что я должен изменить в своем коде, чтобы заставить его работать?
Вы должны создать приемник, чтобы перехватывать телефонные звонки.
Для этого добавьте это в свой файл manifest.xml:
и создайте эти classы:
import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.util.Log; import android.webkit.WebView; public class MyPhoneStateListener extends PhoneStateListener { public static Boolean phoneRinging = false; public void onCallStateChanged(int state, String incomingNumber) { switch (state) { case TelephonyManager.CALL_STATE_IDLE: Log.d("DEBUG", "IDLE"); phoneRinging = false; break; case TelephonyManager.CALL_STATE_OFFHOOK: Log.d("DEBUG", "OFFHOOK"); phoneRinging = false; break; case TelephonyManager.CALL_STATE_RINGING: Log.d("DEBUG", "RINGING"); phoneRinging = true; break; } } }
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; public class ServiceReceiver extends BroadcastReceiver { TelephonyManager telephony; public void onReceive(Context context, Intent intent) { MyPhoneStateListener phoneListener = new MyPhoneStateListener(); telephony = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE); } public void onDestroy() { telephony.listen(null, PhoneStateListener.LISTEN_NONE); } }