tôi thêm đây là file manifest của tôi -Không thể nhận được 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>
Sau đó, lớp dịch vụ của tôi là như thế này -
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);
}
}
và PhoneStateListener của tôi là -
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);
}
}
Tôi có thể xem trạng thái IDLE.
Nhưng khi tôi gọi tôi không nhận trạng thái chuông. Tại sao?
Cảm ơn ... có chuông :) BTW bạn có biết làm thế nào để làm cho nó tạm dừng ứng dụng của tôi khi điện thoại đổ chuông và sau đó quay trở lại ứng dụng khi gọi điện thoại kết thúc? – nasaa
AFAIK, nếu ứng dụng của bạn đang chạy một hoạt động, onPause và onStop sẽ được gọi để nhận hoạt động của điện thoại ở phía trước. Nếu bạn đang chạy một dịch vụ tôi không 'thấy một lý do tại sao bạn muốn tạm dừng công việc bạn đang làm. Tuy nhiên nếu bạn muốn sử dụng phương pháp trên để biết khi nào điện thoại đang đổ chuông và sau đó tùy thuộc vào logic ứng dụng của bạn ngừng làm việc và tiếp tục sau nhưng tôi không thấy lý do tại sao bạn làm điều đó từ một dịch vụ! – advantej
cũng vấn đề là tôi có một bài hát chơi nhưng nó không dừng lại khi điện thoại đổ chuông vì vậy tôi hỏi. – nasaa