有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Android Studio中发送加密文本时失败

我正在构建一个用于加密的Android应用程序&;在Android studio中使用AES进行解密。该应用程序已成功安装在我的Android手机上

加密功能&;解密运行时没有问题。但当我试图通过短信发送加密文本时,失败了

我也在AndroidManifest中设置了发送短信的权限。xml

以下是MainActivity.java

import 安卓.os.Bundle;
import 安卓.app.Activity;
import 安卓.telephony.SmsManager;
import 安卓.view.View;
import 安卓.widget.EditText;
import 安卓.widget.TextView;
import 安卓.widget.Button;
import 安卓.widget.Toast;

import se.simbio.encryption.Encryption;

public final class MainActivity extends Activity {

    private static final String TAG = "Encryption";
    String hasil="";
    String isiText ;
    TextView cipherText ;
    TextView plainText ;
    private Button send;
    private EditText noTelp;

    public String encrypted;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btEnkrip = (Button)findViewById(R.id.btnEncrypt) ;
        Button btDekrip = (Button)findViewById(R.id.btnDecrypt);
        plainText =(TextView)findViewById(R.id.txtEncrypt);
        cipherText =(TextView)findViewById(R.id.txtDecrypt);

        noTelp = (EditText) findViewById(R.id.txtNomor);
        send = (Button) findViewById(R.id.btnSend);

        // Algoritma

        btEnkrip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                String hasil = "";
                Encryption encryption = Encryption.getDefault("KeyEAAK", "SaltEAAK",new byte[16]);
                isiText = plainText.getText().toString();

                for (int i = 0; i < isiText.length(); i++) {
                    int index = isiText.charAt(i);
                    char s = (char)(index+1) ;
                    hasil = hasil + String.valueOf(s);
                }

                String encrypted = encryption.encryptOrNull(hasil);

                cipherText.setText(encrypted);
                plainText.setText(null);
            }
        });

        btDekrip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String hasil = "";
                Encryption encryption = Encryption.getDefault("KeyEAAK", "SaltEAAK",new byte[16]);
                isiText = cipherText.getText().toString();
                String decrypted = encryption.decryptOrNull(isiText);

                for (int i = 0 ; i < decrypted.length(); i++) {
                    int index = decrypted.charAt(i);
                    char s = (char) (index - 1);
                    hasil = hasil + String.valueOf(s);
                }
                plainText.setText(hasil);
                cipherText.setText(null);

            }
        });
// SMS Send
        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String number = noTelp.getText().toString();

                try {
                    SmsManager smsManager = SmsManager.getDefault();
                    smsManager.sendTextMessage(number,null,encrypted,null,null);
                    Toast.makeText(getApplicationContext(), "SMS Success!",Toast.LENGTH_LONG).show();
                } catch (Exception e) {
                    Toast.makeText(getApplicationContext(), "SMS Failed, please try again!", Toast.LENGTH_LONG).show();
                    e.printStackTrace();
                }
            }
        });

    }
}

如何解决这个问题


共 (0) 个答案