2011-08-26 38 views
6

Xin chào Tôi đã tự hỏi nếu có một cách để ghi đè lên màn hình cuộc gọi đến để thêm nhiều chức năng hơn cho nó? Nếu vậy bạn có thể chỉ cho tôi đi đúng hướng hoặc cung cấp một số mã mẫu?Ghi đè màn hình cuộc gọi đến?

---------------------------------------------- ---- CHỈNH SỬA: --------------------------

Tôi nhận được máy thu hoạt động tốt khi cuộc gọi đến nhưng sẽ như thế nào Tôi nhận được cửa sổ hiện tại để ghi đè lên màn hình cuộc gọi? Đây là những gì tôi đã nhận được cho đến nay ... nhưng tôi nhận được một classCastException cố gắng để đúc để hoạt động từ bối cảnh, tôi không thể nghĩ ra bất kỳ cách nào khác để có được quyền truy cập vào cửa sổ.

@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); 
      Log.w("DEBUG", "-------------------------------------------------- Broadcast Received"); 
      if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
       String phoneNumber = extras 
         .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
       Log.w("DEBUG", phoneNumber); 
       Activity activity = (Activity)context.getApplicationContext(); 
       Window window = activity.getParent().getWindow(); 
       window.addContentView(window.findViewById(R.layout.textalertbuttonview),null); 
       Log.w("DEBUG", "------------------------Button Added"); 

      } 
     } 
     else { 
      Log.w("DEBUG", "---------------------------------------------------no Extras"); 
     } 
    } 

------------------------------------------- ------- CHỈNH SỬA 2: --------------------------

Dường như sau một số nghiên cứu mà tôi thực sự có thể thêm các phần tử vào màn hình cuộc gọi đến thực tế. Vì vậy, tôi sẽ phải thực hiện chế độ xem của riêng mình và ghi đè màn hình cuộc gọi đến. Nhưng tôi vẫn mở cho những ý tưởng ... Tôi thấy cuộc gọi đến cộng nhưng không thể tìm thấy mã nguồn cho dự án đó.

+0

Hãy chia sẻ nếu bạn có một giải pháp tốt hơn. Tôi cũng đang cố gắng làm như vậy. Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn – png

Trả lời

2

Nói chung: Bạn có thể đặt một BroadcastReceiver nghe PHONE_STATE:

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

Sau đó, bên nhận này (sau khi kiểm tra tình trạng của điện thoại bạn muốn xử lý (đổ chuông, trong cuộc gọi, treo cổ lên, vv .) bạn sẽ nhận được cửa sổ hiện tại (mà nên là màn hình cuộc gọi) và thêm một cái nhìn vào nó Và tất nhiên loại bỏ xem một khi nhà nước không phải là một trong những bạn muốn xử lý. đó là ý tưởng.

+0

Cảm ơn nhưng làm thế nào tôi có thể nhận được cửa sổ hiện tại từ bên trong phương thức onRecieve? Tôi đã đăng một số mã mà tôi đã sử dụng nhưng có một nhận thức về lớp. – Pengume

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