Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: trate de enviar sms falsos a mí mismo sin el uso de la red móvil

Estoy tratando de enviar mensajes a mi teléfono con esta aplicación, sin usar el uso de la red, pero mi código no funciona. He seguido algunos tutorial, comprobar android dev y no he encontrado nada (en mi logcat no tengo error). ¿Podría ayudarme a averiguar mi problema?

Mi información sobre compilación, compilador y teléfono:

  • Android y la configuración de alfa para (imagen) ver alfa
  • Android Studio - Nombre de dominio de la empresa
  • Altura mitad fill_parent xml
  • Deslizar entre imágenes filtradas para Android
  • Android comprobar disponibilidad GPS en el dispositivo
  • Poner densidades de pantalla en el cubo correcto
    • Android Studio 1.0.1

    • API 19 Android 4.4.4 (kitkat)

    • Construir 19

    • Versión del teléfono Android 4.4.4

    Manifiesto:

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

    Función de mi actividad principal:

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

    Bueno, esto es lo que quiero hacer, pero con mi propia aplicación y no con la aplicación Fake Text Message que descargó a la tienda de juegos.

    Haz el mensaje falso y qué debo ver en mi aplicación de SMS predeterminada:

  • Mapa de Google para android mi botón personalizado de ubicación
  • FirebaseUI autenticación con Facebook no funciona
  • Agregar múltiples entradas a un HashMap a la vez en una sentencia
  • WebView enlace haga clic en abrir navegador predeterminado
  • Reducción inicial de zoom de Webview de Android
  • Usando una contraseña de keystore vacía solía ser posible?
  • One Solution collect form web for “Android: trate de enviar sms falsos a mí mismo sin el uso de la red móvil”

    Con la ayuda de Mike M. finalmente terminé mi programa. Por lo tanto, este es el código que debe agregar a su aplicación para poder enviar sms sin utilizar la red:

    Manifiesto:

     <uses-permission android:name="android.permission.WRITE_SMS"/> <uses-permission android:name="android.permission.READ_SMS"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- BroadcastReceiver that listens for incoming SMS messages --> <receiver android:name=".SmsReceiver" android:permission="android.permission.BROADCAST_SMS"> <intent-filter> <action android:name="android.provider.Telephony.SMS_DELIVER" /> </intent-filter> </receiver> <!-- BroadcastReceiver that listens for incoming MMS messages --> <receiver android:name=".MmsReceiver" android:permission="android.permission.BROADCAST_WAP_PUSH"> <intent-filter> <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" /> <data android:mimeType="application/vnd.wap.mms-message" /> </intent-filter> </receiver> <!-- My activity --> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- Activity that allows the user to send new SMS/MMS messages --> <activity android:name=".ComposeSmsActivity" > <intent-filter> <action android:name="android.intent.action.SEND" /> <action android:name="android.intent.action.SENDTO" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="sms" /> <data android:scheme="smsto" /> <data android:scheme="mms" /> <data android:scheme="mmsto" /> </intent-filter> </activity> <!-- Service that delivers messages from the phone "quick response" --> <service android:name=".HeadlessSmsSendService" android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE" android:exported="true" > <intent-filter> <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="sms" /> <data android:scheme="smsto" /> <data android:scheme="mms" /> <data android:scheme="mmsto" /> </intent-filter> </service> </application> 

    Actividad principal:

     Context context; Button button; String sender,body,defaultSmsApp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Get current context context = this; //Set composant button = (Button) findViewById(R.id.button); //Get default sms app defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(context); //Set the number and the body for the sms sender = "0042"; body = "Android fake message"; //Button to write to the default sms app button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Get the package name and check if my app is not the default sms app final String myPackageName = getPackageName(); if (!Telephony.Sms.getDefaultSmsPackage(context).equals(myPackageName)) { //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()); startActivityForResult(intent, 1); } } }); } //Write to the default sms app 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); } //Change my sms app to the last default sms Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, defaultSmsApp); context.startActivity(intent); } //Get result from default sms dialog pops up @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { // Make sure the request was successful if (resultCode == RESULT_OK) { final String myPackageName = getPackageName(); if (Telephony.Sms.getDefaultSmsPackage(context).equals(myPackageName)) { //Write to the default sms app WriteSms(body, sender); } } } } 

    Como resultado de agregar cosas en su manifiesto debe agregar 4 clases: SmsReceiver, MmsReceiver, ComposeSmsActivity y HeadlessSmsSendService. Puede dejar que se vacíen como se muestra a continuación.

    SmsReceiver:

     public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } } 

    MmsReceiver:

     public class MmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } } 

    ComposeSmsActivity:

     public class ComposeSmsActivity extends ActionBarActivity { } 

    HeadlessSmsSendService:

     public class HeadlessSmsSendService extends IntentService { public HeadlessSmsSendService() { super(HeadlessSmsSendService.class.getName()); } @Override protected void onHandleIntent(Intent intent) { throw new UnsupportedOperationException("Not yet implemented"); } } 

    Si necesitas más ayuda para entender este programa, echa un vistazo allí:

    Youtube – DevBytes: API de Android 4.4 SMS

    Desarrolladores de Android – Preparación de sus aplicaciones de SMS para KitKat

    Posiblemobile – KitKat Soporte para SMS y MMS

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.