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

Java 在Android Studio中发送加密文本时失败,java,android,Java,Android,我正在Android studio中使用AES构建一个用于加密和解密的Android应用程序。该应用程序已成功安装在我的Android手机上 用于加密和解密的函数运行时没有问题。但当我试图通过短信发送加密文本时,失败了 我也在AndroidManifest.xml中设置了发送短信的权限 以下是MainActivity.java: import android.os.Bundle; import android.app.Activity; import android.telephony.SmsM

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

用于加密和解密的函数运行时没有问题。但当我试图通过短信发送加密文本时,失败了

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

以下是
MainActivity.java

import android.os.Bundle;
import android.app.Activity;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Button;
import android.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();
                }
            }
        });

    }
}
导入android.os.Bundle;
导入android.app.Activity;
导入android.telephony.smsmsmanager;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Button;
导入android.widget.Toast;
导入se.simbio.encryption.encryption;
公共最终类MainActivity扩展活动{
私有静态最终字符串标记=“加密”;
字符串hasil=“”;
字符串和文本;
文本视图密文;
文本视图纯文本;
私人按钮发送;
私人编辑文本注释;
加密的公共字符串;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮btEnkrip=(按钮)findViewById(R.id.BtneCrypt);
按钮btDekrip=(按钮)findViewById(R.id.btnDecrypt);
明文=(TextView)findViewById(R.id.txtEncrypt);
cipherText=(TextView)findViewById(R.id.txtDecrypt);
noTelp=(EditText)findViewById(R.id.txtNomor);
发送=(按钮)findviewbyd(R.id.btnSend);
//算法
btEnkrip.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
字符串hasil=“”;
Encryption Encryption=Encryption.getDefault(“KeyEAAK”、“SaltEAAK”、新字节[16]);
isiText=纯文本.getText().toString();
对于(int i=0;i

如何解决此问题?

发送短信时是否出现错误?或者短信是空的?你可以通过短信发送一个简单的字符串,而不是一个加密的,行吗?我想到了字符编码。不熟悉短信方面的东西,但有支持字符吗?你的android版本是什么?请提供更多关于环境和错误的信息,这将更快地为所有想要帮助您的人提供帮助。可能与默认SMS应用程序的运行时权限有关。