android défaut, faisant application sms par défaut
Donc je suis ce Tutoriel ici sur la définition de mon SMS par défaut, mais pour une raison quelconque, mon code ne fonctionne pas. J'ai essayé de regarder ce autant que possible, mais tout indique que le retour à ce même tutoriel ou a été dépassées. Ai-je besoin d'un récepteur? Quelqu'un peut m'expliquer ce que je fais de mal?
Le Code:
@Override
protected void onResume()
{
super.onResume();
Log.i("MainAcitvity", "On Resume Called");
//Only do these checks/changes on KitKat+, the "mSetDefaultSmsLayout" has its visibility
//set to "gone" in the xml layout so it won't show at all on earlier Android versions.
final String myPackageName = getPackageName();
if (Utility.hasKitKat())
{
if (Utility.isDefaultSmsApp(this))
{
//This app is the default, remove the "make this app the default" layout and
//enable message sending components.
mSetDefaultSmsLayout.setVisibility(View.GONE);
}
else
{
Log.i("MainActivity", "Not Default App");
//Not the default, show the "make this app the default" layout and disable
//message sending components.
mSetDefaultSmsLayout.setVisibility(View.VISIBLE);
Button button = (Button) findViewById(R.id.set_default_sms_button);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
Log.i("MainActivity", "Button Pushed");
//Utility.setDefaultSmsApp(MainActivity.this);
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, myPackageName);
startActivity(intent);
}
});
}
}
}
Le Manifeste:
<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" />
<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>
OriginalL'auteur Jayce | 2015-05-08
Vous devez vous connecter pour publier un commentaire.
Pour votre application afin de pouvoir être sélectionnée comme messagerie par défaut de l'application (autant que le système est concerné), vous devez dresser la liste de tous les composants dans le manifeste, comme indiqué dans ce post de blog, si ces composants classes existent réellement ou pas.
Depuis le système inspecte seulement un manifeste de l'application afin de déterminer si elle peut agir en tant que par défaut de l'application de messagerie, pas tous les composants de classes doivent exister pour que votre application à afficher par défaut dans la liste de sélection. Ceci est utile pour l'apprentissage et de test, mais, évidemment, si votre application est d'agir en tant qu'utilisateur par défaut du client de messagerie, il devrait mettre pleinement en œuvre tous les composants spécifiés.
Si vous avez l'intention d'effectuer un SMS/MMS-tâches, vous aurez également besoin des autorisations requises. Si le système apparemment ne vérifie pas pour ces moment de déterminer admissibles par défaut de l'application candidats, les autorisations suivantes sont nécessaires pour leurs opérations correspondantes:
Si vous êtes absent le
SEND_SMS
,READ_SMS
, ouWRITE_SMS
autorisation lorsque vous essayez d'effectuer l'action donnée, unSecurityException
sera levée. Toutefois, si vous manquez uneRECEIVE_*
autorisation, votre application sera tout simplement pas être livré pertinentes des émissions, et il peut sembler comme si rien ne se passe lors de l'essai de ces fonctionnalités.Oui. N'importe quel composant avec un
<service>
élément serait unService
sous-classe.merci, ouais c'est ce que je demande 🙂
Il a travaillé Mike.
Entendez-vous comme cela? stackoverflow.com/q/42676866
OriginalL'auteur Mike M.