Cómo configurar mi aplicación sms por defecto en Android Kitkat?

Hice una aplicación sms android en la que estoy enviando y recibiendo sms como aplicación de mensajería android lo hace. Ahora he establecido mi objetivo a 4,4 (Android KitKat versión), pero KitKat Android tiene nueva configuración de la aplicación "Mensajería predeterminada" que el usuario puede seleccionar una aplicación a la vez para la mensajería. He seguido los pasos de este sitio para seleccionar la opción de mi aplicación sms como aplicación predeterminada, pero en la configuración de mi aplicación nunca apareció en el popup de seleccionar la aplicación de mensajería predeterminada.

A continuación se muestra mi código java que he utilizado desde el guid

if( androidOS.contains("4.4") ){ if (! Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName) ) { // App is not default. // Show the "not currently set as the default SMS app" interface builder = new AlertDialog.Builder(MyConversation.this); builder.setMessage("Shoot The Messenger is not set as your default messaging app. Do you want to set it default?") .setCancelable(false) .setTitle("Alert!") .setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @TargetApi(19) public void onClick(DialogInterface dialog, int id) { Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName()); startActivity(intent); } }); builder.show(); } } 

También agregué debajo del código en el archivo del Manifest .

 <?xml version="1.0" encoding="utf-8"?> 

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <uses-feature android:name="android.hardware.telephony.gsm" android:required="false"/> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.WRITE_SMS" /> <uses-permission android:name="android.permission.RECEIVE_MMS" /> <uses-permission android:name="android.permission.WRITE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.INSTALL_PACKAGES"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.NoTitle" > <activity android:name="coms3.shootmessenger.Mysplash" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SENDTO" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="sms" /> <data android:scheme="smsto" /> </intent-filter> </activity> <receiver android:name="coms3.shootmessenger.SmsReceiver" android:permission="android.permission.BROADCAST_SMS" > <intent-filter> <action android:name="android.provider.Telephony.SMS_DELIVER" /> </intent-filter> <!-- <intent-filter android:priority="2147483647" > <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> --> </receiver> <receiver android:name="com.example.bootreceiver.MyBootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> <receiver android:name="coms3.shootmessenger.MMSReceiver" android:permission="android.permission.BROADCAST_WAP_PUSH"> <intent-filter> <action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" /> <data android:mimeType="application/vnd.wap.mms-message" /> </intent-filter> </receiver> <receiver android:process=":remote" android:name="AlarmManagerBroadcastReceiver"></receiver> <receiver android:process=":remote" android:name="AlarmForPartyMessage"></receiver> <receiver android:process=":remote" android:name="AlarmManagerMail"></receiver> <activity android:name="coms3.shootmessenger.ActivityFirstList" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityBase" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.SearchTab" android:configChanges="keyboardHidden|orientation" > </activity> <activity android:name="coms3.shootmessenger.ActivityMail" android:windowSoftInputMode="adjustPan" > </activity> <activity android:name="coms3.shootmessenger.ActivityScheduldMail" android:windowSoftInputMode="adjustPan" android:screenOrientation="portrait" > </activity> <activity android:name="coms3.shootmessenger.MessageTab" > </activity> <activity android:name="coms3.shootmessenger.SettingsTab" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.MyConversation" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityDelayedSending" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityScheduldMessage" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityStealthMode" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivitySms" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityBlackList" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityDeleteMessage" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityDeleteone" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivitySmsnew" > <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" /> </intent-filter> </activity> <activity android:name="coms3.shootmessenger.ActivityEventlist" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityScheduleList" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityCancelSchedule" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityCancelEvent" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityCancelMail" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.Activitytutorial" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.ActivityConversationtutorial" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <activity android:name="coms3.shootmessenger.Aboutus" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> <service android:name="coms3.shootmessenger.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> 

ACTUALIZAR:

Nota: estoy probando en Emulator … Después de seguir todos los pasos sólo veo la aplicación de mensajería predeterminada de Android no la mía como en la imagen que se muestra a continuación. Cualquier tipo de ayuda será apreciada. Gracias por adelantado.

Introduzca aquí la descripción de la imagen

Las instrucciones que publicó fueron correctas: el problema es que debe implementar todas las capacidades necesarias:

  • En un receptor de difusión, incluya un filtro de intenciones para SMS_DELIVER_ACTION (" android.provider.Telephony.SMS_DELIVER "). El receptor de difusión también debe requerir el permiso BROADCAST_SMS. Esto permite que tu aplicación reciba directamente mensajes SMS entrantes.

  • En un receptor de difusión, incluya un filtro de intenciones para WAP_PUSH_DELIVER_ACTION (" android.provider.Telephony.WAP_PUSH_DELIVER ") con el tipo MIME " application/vnd.wap.mms-message ". El receptor de difusión también debe requerir el permiso BROADCAST_WAP_PUSH. Esto permite que tu aplicación reciba directamente mensajes MMS entrantes.

  • En su actividad que envía mensajes nuevos, incluya un filtro de intenciones para ACTION_SENDTO (" android.intent.action.SENDTO ") con esquemas, sms: smsto: mms: y mmsto: Esto permite que tu aplicación reciba las intenciones de otras aplicaciones que quieran enviar un mensaje.

  • En un servicio, incluya un filtro de intenciones para ACTION_RESPONSE_VIA_MESSAGE (" android.intent.action.RESPOND_VIA_MESSAGE ") con schemas, sms: smsto: mms: y mmsto: Este servicio también debe requerir el permiso SEND_RESPOND_VIA_MESSAGE .

Sin los cuatro, su aplicación no aparecerá en el cuadro de diálogo predeterminado de selección de SMS.

Si no implementa los cuatro requisitos, su aplicación no aparecerá como una aplicación predeterminada de SMS. Incluso si tu aplicación no admite MMS, debes añadirlas al archivo más manifiesto. No significa que usted tiene que implementar actividades o servicios o receptores para ellos. Añada éstos a su archivo más manifiesto y debe conseguir su SMS enumerado como una aplicación por defecto de SMS. Siéntase libre de ignorar cualquier error de pelusa.

 <!-- BroadcastReceiver that listens for incoming MMS messages --> <receiver android:name=".MmsReceiver" android:enabled="@bool/is_kitkat" 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> <!-- 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> 
  • ¿Cómo obtener URI actual / tono de llamada predeterminado para SMS entrantes?
  • Configuración predeterminada de Android por omisión de la aplicación sms
  • Casting un objeto java a objeto en Scala
  • Receptor de radiodifusión sigue funcionando después de cerrar la aplicación - Android
  • Android: cómo obtener el número de teléfono de un SMS entrante?
  • Envío de SMS a granel con el administrador de sms en android
  • ¿Cómo reenviar sms a contactos seleccionados a whatsapp desde mi aplicación de Android?
  • ¿Cómo puede enviar sms en android en doble SIM?
  • Android4.4 no puede manejar la intención de sms con "vnd.android-dir / mms-sms"
  • Manera a prueba de errores de iniciar la intención de SMS en Android
  • Envío de sms a varias personas en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.