2012-03-06 3 views
-4

나는 안드로이드 프로젝트가 전화를 차단 사용하고 호출자에게 SMS를 보낼 수 있습니다.
여기를 모두 검색하십시오. 그러나 이러한 코드는 작동하지 않습니다. 도움이 필요해. 나는 안드로이드 2.2전화 블록과 SMS를 보내 다시

+0

처음 한 OnCreate 방법 밖에이 코드를 사용 만 답변을 닫습니다. –

+0

내 앱이 통화 차단 및 발신자에게 통화 차단 이유를 알리는 메시지를 반환합니다 ... 통화를 차단할 수없는 경우 어떻게 통화를 피할 수 있습니까? – user121

+0

이드는 프로그래밍 방식으로 통화를 닫는 방법을 알고 있습니다. – user121

답변

1

사용을 사용하고 SMS 관리자에 대한이 전

Button bttsendsms; 

공공 무효에서 onCreate (번들 savedInstanceState) {

super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    bttsendsms =(Button)findViewById(R.id.button1); 
    bttsendsms.setOnClickListener(new View.OnClickListener() 
     { 

     public void onClick(View v) { 
      Toast.makeText(SmsActivity.this, "hello", 6000).show(); 
      sendSMS("5556","hello friends"); 
      sendSMS("5558","hello friends"); 
     } 
    }); 
    } 
    private void sendSMS(String phoneNumber,String message) 
    { 
     SmsManager sms=SmsManager.getDefault(); 
     sms.sendTextMessage(phoneNumber,null,message,null,null); 
    } 
} 
1

이 코드를 시도 ....이이 작동 나를 위해 일하는 동일한 응용 프로그램을 개발하고 있습니다. oncreate 메소드에서이 코드를 사용하십시오.

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
     PhoneStateListener callStateListener = new PhoneStateListener() { 
      public void onCallStateChanged(int state, String incomingNumber) { 
       // React to incoming call. 

      // number = PhoneNumberUtils.formatNumber(incomingNumber); 
      number = incomingNumber; 
      // If phone ringing 
      if (state == TelephonyManager.CALL_STATE_RINGING) { 



      new LoadStuff().execute(incomingNumber, message); 
      boolean isEnabled = Settings.System.getInt(
       getContentResolver(), 
     Settings.System.AIRPLANE_MODE_ON, 0) == 1; 

    if (!isEnabled) { 
     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); 
          } 

         } 
      } 
      // If incoming call received 
      if (state == TelephonyManager.CALL_STATE_OFFHOOK) { 

      } 

      if (state == TelephonyManager.CALL_STATE_IDLE) { 
       boolean isEnabled = Settings.System.getInt(
         getContentResolver(), 
         Settings.System.AIRPLANE_MODE_ON, 0) == 1; 
       if (isEnabled) { 
        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); 

       } 

      } 
     } 

    }; 
    telephonyManager.listen(callStateListener, 
      PhoneStateListener.LISTEN_CALL_STATE); 

} 

하고, 뭐가 잘못보고 둘째, 당신은 안드로이드에 전화를 차단할 수 없습니다 여기에 코드를 넣어

public class LoadStuff extends AsyncTask<String, String, Void> { 

     @Override 
     protected Void doInBackground(String... params) { 
      // TODO Auto-generated method stub 
      String number = params[0]; 
      String message = params[1]; 
      boolean error = false; 
      try { 
       SmsManager sms = SmsManager.getDefault(); 
       sms.sendTextMessage(number, null, message, null, null); 

      } catch (IllegalArgumentException e) { 
       error = true; 
      } 

      if (error) { 
       Toast.makeText(getBaseContext(), "SMS SENDING FAILED", 
         Toast.LENGTH_SHORT).show(); 
      } 
      return null; 
     } 

    } 
관련 문제