java Android试图在不使用移动网络的情况下向自己发送虚假短信
我正在尝试使用此应用程序向手机发送消息,而不使用网络使用,但我的代码不起作用。我遵循了一些教程,检查了安卓开发,但我没有发现任何东西(在我的logcat中,我没有错误)。你能帮我找出我的问题吗
我关于编译、编译器和电话的信息:
Android Studio 1.0.1
API 19安卓4.4.4(kitkat)
建造19
Android手机版本4.4.4
舱单:
<uses-permission 安卓:name="安卓.permission.WRITE_SMS"/>
<uses-permission 安卓:name="安卓.permission.READ_SMS"/>
我的主要活动的功能:
Context context;
String sender;
String body;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Get current context
context = this;
//App started
Toast.makeText(context, "Started", Toast.LENGTH_LONG).show();
CheckApp();
}
private void CheckApp() {
sender = "1234";
body = "Android sms body";
//Get my package name
final String myPackageName = getPackageName();
//Check if my app is the default sms app
if (!Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName)) {
//Get default sms app
String defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(context);
//Change the default sms app to my app
Intent intent = new Intent( Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName());
startActivity(intent);
//Write the sms
WriteSms(body, sender);
//Change my sms app to the last default sms app
Intent intent2 = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent2.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, defaultSmsApp);
startActivity(intent2);
}
else{
//Write the sms
WriteSms(body, sender);
}
}
//Write the sms
private void WriteSms(String message, String phoneNumber) {
//Put content values
ContentValues values = new ContentValues();
values.put(Telephony.Sms.ADDRESS, phoneNumber);
values.put(Telephony.Sms.DATE, System.currentTimeMillis());
values.put(Telephony.Sms.BODY, message);
//Insert the message
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
context.getContentResolver().insert(Telephony.Sms.Sent.CONTENT_URI, values);
}
else {
context.getContentResolver().insert(Uri.parse("content://sms/sent"), values);
}
}
嗯,这就是我想做的,但是用我自己的应用程序,而不是下载到play store的应用程序Fake Text Message
生成假消息,我应该在默认短信应用程序上看到什么:
# 1 楼答案
在迈克·M.的帮助下,我终于完成了我的程序。因此,这是您必须添加到应用程序中的代码,以便在不使用网络的情况下发送短信:
清单:
主要活动:
作为在清单中添加内容的结果,您必须添加4个类:SmsReceiver、mmsreiver、composemsactivity和headlessmssendservice。您可以按如下所示将其清空
SMS接收器:
彩信接收器:
复合活动:
无头服务:
如果你需要更多的帮助来理解这个程序,请查看:
Youtube - DevBytes: Android 4.4 SMS APIs
Android developers - Getting Your SMS Apps Ready for KitKat
Possiblemobile - KitKat SMS and MMS supports