Java 在Android Studio中发送加密文本时失败
我正在Android studio中使用AES构建一个用于加密和解密的Android应用程序。该应用程序已成功安装在我的Android手机上 用于加密和解密的函数运行时没有问题。但当我试图通过短信发送加密文本时,失败了 我也在AndroidManifest.xml中设置了发送短信的权限 以下是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
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应用程序的运行时权限有关。