Я пытаюсь отправить сообщение на свой телефон с этим приложением, не используя сетевое использование, но мой код не работает. Я следил за некоторым учебным пособием, проверяю android dev, и я ничего не нашел (в моем logcat у меня нет ошибки). Не могли бы вы помочь мне выяснить мою проблему.Android - попробуйте отправить поддельные sms мне без использования мобильной сети
Моя информация о компиляции, компилятор и телефон:
Android Studio 1.0.1
API 19 Android 4.4.4 (KitKat)
Сложение 19
Номер телефона Android 4.4.4
Manifest:
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.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);
}
}
Ну, это то, что я хочу сделать, но с моим собственным приложением, а не с приложением Fake Text Message, что загружаемый в игре магазин.
Сделать ложное сообщение, и что я должен увидеть на мое приложение смс по умолчанию:
Ваше приложение не может быть установлен как по умолчанию SMS приложение на нет, если, по крайней мере, его манифест содержит все, что показано в примере здесь: [Получение ваших SMS-приложений для KitKat] (http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html ? т = 1). Кроме того, когда активируется «ACTION_CHANGE_DEFAULT» Intent, появляется диалоговое окно подтверждения, поэтому я не думаю, что ваш метод будет работать так, как вы ожидаете. –
В качестве примечания, если вы просто играете на своем собственном устройстве под управлением 4.4.4, вы можете проверить [мой ответ здесь] (http://stackoverflow.com/a/27709655/2850651) для возможного обходного пути. –
Я прочитал пример, показанный в сообщении «Получение ваших SMS-приложений для KitKat». Все лишние вещи, которые я не добавляю к моему манифесту, похоже, используются для управления смс, mms (возвращенными, отправленными) в сеть (не то, что я хочу делать в своем приложении). В моем приложении я просто хочу вставить смс, например, приложение [Fake Text Message] (https://play.google.com/store/apps/details?id=com.neurondigital.FakeTextMessage&hl=fr). Кстати, я хочу использовать мое приложение больше, чем свой телефон. – Albentrix