vendredi 20 février 2015

Android - Try to send fake sms to myself without mobile network usage



I'm trying to send message to my phone with this app, without using network usage, but my code doesn't work. I followed some tutorial, check android dev and I haven't found anything (in my logcat I don't have error). Could you help me to find out my problem.


My information about compilation, compiler and phone:




  • Android Studio 1.0.1




  • API 21 Android 5.0 (Lollipop)




  • Build 21.1.2




  • Android phone version 4.4.4




Manifest:



<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>


Function of my main activity:



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);
}
}


Well, this is what i wanna do but with my own app and not with the app Fake Text Message that downloaded to the play store.


Make the fake message and what should i see on my default sms app:





Aucun commentaire:

Enregistrer un commentaire