2012-03-04 19 views
5

Tôi hiện đang chặn cuộc gọi và chuyển tiếp cuộc gọi đó đến hoạt động "tùy chỉnh trên màn hình" được tùy chỉnh của tôi. Tuy nhiên, trước khi đến màn hình của tôi, nó sẽ nhấp nháy vào "màn hình chờ" mặc định. Làm thế nào tôi có thể ẩn/hủy màn hình này để khi nhận cuộc gọi, tôi chỉ nhận được màn hình tùy chỉnh của mình.Tôi làm cách nào để ẩn/hủy màn hình đến mặc định

@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     String state = extras.getString(TelephonyManager.EXTRA_STATE); 
     Log.w("DEBUG", state); 
     if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
      String phoneNumber = extras 
        .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 

Trả lời

1

Bạn cần phải ngăn chặn phát sóng android.intent.action.PHONE_STATE với ưu tiên cao nhất có thể, sau đó nếu trong bạn BroadcastReceiver.onReceive() bạn sẽ hủy phát sóng thông qua BroadcastReceiver.abortBroadcast() bạn sẽ có thể để ngăn chặn mặc định màn hình cuộc gọi đến sẽ được hiển thị, vì ứng dụng mặc định sẽ không nhận được phát sóng cuộc gọi đến. Sau đó, bạn được tự do hiển thị Hoạt động của riêng mình.

+1

Bạn không chắc chắn việc này có hiệu quả hay không, nhưng nó không hoạt động trong Android 4.1.2 - phát sóng PHONE_STATE không được đặt hàng, vì vậy bạn gặp lỗi khi cố gắng hủy bỏ chương trình phát sóng vì bạn không thể hủy các chương trình phát sóng không có thứ tự . –

+0

Ưu tiên cao nhất khi nhận được cuộc gọi đến. – VickyS

Các vấn đề liên quan