2013-06-29 26 views
5

Có rất nhiều ứng dụng chặn cuộc gọi cho thiết bị di động, như Chặn cuộc gọi NQ. Nhưng trong các ứng dụng này, nếu chúng ta thêm một số vào danh sách đen, người gọi sẽ nghe thấy "Bận âm". Ngoài ra, người gọi có thể nghe thấy "Nhạc chuông" trong một phần giây. Có nghĩa là, có vẻ như chúng tôi đang từ chối cuộc gọi một cách có chủ ý.Làm thế nào để làm cho số không thể truy cập (tương tự như chặn cuộc gọi)?

Bây giờ, những gì tôi đang cố gắng là phát triển một ứng dụng chặn cuộc gọi, có thể gửi "Tone không thể truy cập", thay vì "Busy Tone" ... ??

Ví dụ: gọi điện thoại di động của bạn từ một số khác, khi chuông đổ chuông, hãy thử thay đổi chế độ của bạn thành "Chế độ trên máy bay". Bạn sẽ nghe thấy "Not Reachable Tone". [Có thể trong một số thiết bị Android, nhấn và giữ nút nguồn, và kích hoạt "Chế độ trên máy bay", khi điện thoại di động đang đổ chuông.]

Trả lời

2

Bạn có thể thử triển khai PhoneStateListener và khi bạn nhận được cuộc gọi, bạn so sánh nó với số mảng, nếu bị cấm bạn chuyển sang chế độ airplaine. Một cái gì đó như thế này:

case TelephonyManager.CALL_STATE_RINGING: // incoming call 
{ 
    for (int i = 0; i < forbiddenNumber.size; i++) { 
     if (incomingNumber.equals(forbiddenNumber[i])) { 
      // read the airplane mode setting 
      boolean isEnabled = Settings.System.getInt(
        getContentResolver(), 
        Settings.System.AIRPLANE_MODE_ON, 0) == 1; 

      // toggle airplane mode 
      Settings.System.putInt(getContentResolver(), 
        Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 
          : 1); 

      // Post an intent to reload 
      Intent intent = new Intent(
        Intent.ACTION_AIRPLANE_MODE_CHANGED); 
      intent.putExtra("state", !isEnabled); 
      sendBroadcast(intent); 

     } 
    } 

Đừng quên sự cho phép để WRITE_SETTINGS

5

Tín hiệu "Không thể truy cập" không được gửi bởi điện thoại của bạn. Thay vào đó, nó được gửi bởi nhà cung cấp dịch vụ của bạn.

Khi số của bạn không thể truy cập được, nghĩa là tháp di động không thể liên lạc với bạn. Vì vậy, khi ai đó gọi cho bạn, tháp cố gắng tìm bạn, và nếu nó không thể gửi tín hiệu "Không thể truy cập" xuống dòng. Bạn không thể giả mạo một và gửi nó từ thiết bị của bạn để thay thế.

3

Vì bạn không thể làm điều này, như Raghav đã chỉ ra, dòng suy nghĩ tiếp theo của bạn sẽ giả mạo các âm thanh điều khiển DTMF của nhà cung cấp dịch vụ, ví dụ: mạng bận, số điện thoại bị ngắt kết nối, v.v.

Sau đó, bạn sẽ sớm phát hiện ra rằng ứng dụng của bạn không thể thực hiện điều đó ... nó không thể "giả" DTMF âm lên dòng - cả trước khi cuộc gọi được trả lời (bởi vì bạn không phải là công ty điện thoại), cũng không phải sau khi nó được trả lời, mà nhiều người coi là giám sát bởi google-android. Nhiều bài đăng ở đây về cả hai. Có, tất nhiên chúng ta có thể tự khóa trong DTMF (hoặc chúng tôi không thể gọi mở rộng, đấm số tài khoản, vv) nó chỉ là một APP không thể làm điều đó tự động ... nhiều đến sự bực bội của nhiều nhà phát triển PBX. Xin lỗi, điều này là không may cho tất cả chúng ta ...