加密后发送短信不起作用

时间:2014-11-11 05:48:32

标签: java android function encryption

此函数将调用另一个加密(PRINCE算法)文本消息的函数(prince.Encrypt)。但是一旦它与加密功能相关联,发送短信失败。在加密之前,该功能正常运行。

    btnSendSMS.setOnClickListener(new View.OnClickListener() 
        {
             public void onClick(View v, String args) 
                  {             
                       String phoneNo = txtPhoneNo.getText().toString();
                       String message = txtMessage.getText().toString();              
                       if (phoneNo.length()>0 && message.length()>0)
                       {
                            LongBuffer messageBuf = TooLong.messageToLongBuffer(message); 
                            messageBuf.flip();
                            long[] messageData = new long[messageBuf.remaining()];
                            LongBuffer i = messageBuf.get(messageData);
                            String v1=prince.Encrypt(i, k0, kop, k1, t);
                            sendSMS(phoneNo, v1);
                        }               
                        else
                            Toast.makeText(getBaseContext(),"Please enter both phone number and message.",Toast.LENGTH_SHORT).show();
                  }

                  @Override
                  public void onClick(View v)
                  {
                  // TODO Auto-generated method stub
                  }
         });        
    }
 //---sends a SMS message to another device---
    private void sendSMS(String phoneNumber, String v1)
    {      
     /*
        PendingIntent pi = PendingIntent.getActivity(this, 0,
                new Intent(this, test.class), 0);                
            SmsManager sms = SmsManager.getDefault();
            sms.sendTextMessage(phoneNumber, null, message, pi, null);        
        */

     String SENT = "SMS_SENT";
     String DELIVERED = "SMS_DELIVERED";

        PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
            new Intent(SENT), 0);

        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
            new Intent(DELIVERED), 0);

        //---when the SMS has been sent---
        registerReceiver(new BroadcastReceiver(){
   @Override
   public void onReceive(Context arg0, Intent arg1) {
    switch (getResultCode())
    {
        case Activity.RESULT_OK:
         Toast.makeText(getBaseContext(), "SMS sent", 
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
         Toast.makeText(getBaseContext(), "Generic failure", 
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_NO_SERVICE:
         Toast.makeText(getBaseContext(), "No service", 
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_NULL_PDU:
         Toast.makeText(getBaseContext(), "Null PDU", 
           Toast.LENGTH_SHORT).show();
         break;
        case SmsManager.RESULT_ERROR_RADIO_OFF:
         Toast.makeText(getBaseContext(), "Radio off", 
           Toast.LENGTH_SHORT).show();
         break;
    }
   }
        }, new IntentFilter(SENT));

        //---when the SMS has been delivered---
        registerReceiver(new BroadcastReceiver(){
   @Override
   public void onReceive(Context arg0, Intent arg1) {
    switch (getResultCode())
    {
        case Activity.RESULT_OK:
         Toast.makeText(getBaseContext(), "SMS delivered", 
           Toast.LENGTH_SHORT).show();
         break;
        case Activity.RESULT_CANCELED:
         Toast.makeText(getBaseContext(), "SMS not delivered", 
           Toast.LENGTH_SHORT).show();
         break;         
    }
   }
        }, new IntentFilter(DELIVERED));        

       SmsManager sms = SmsManager.getDefault();
       sms.sendTextMessage(phoneNumber, null, v1, sentPI, deliveredPI);               
    }    

}

0 个答案:

没有答案