L'utilisation de base de l'intention d'Android

Présentation de cette rubrique :

Après la fin de la section précédente, cela signifie que nous avons fini d'apprendre les quatre composants principaux d'Android ~, et ce que nous voulons apprendre dans cette section est le hub entre les quatre composants principaux - Intent (intention), le pont d'Android communication, par exemple, on peut passer :

  • startActivity (Intent)/ startActivityForResult (Intent) : pour démarrer une activité
  • startService (Intent)/ bindService (Intent) : pour démarrer un Service
  • sendBroadcast : Envoie une diffusion au BroadcastReceiver spécifié
  • De plus, n'oubliez pas que lorsque nous avons enregistré les quatre composants majeurs, nous avons écrit beaucoup d' Intent-Filter ~

Eh bien, sans plus tarder, commençons cette section ! De plus, nous avons déjà utilisé Intent auparavant, nous ne parlerons donc pas de choses conceptuelles ~ Anciennes règles, API officielle : Intent


1. La différence entre l'intention explicite et l'intention implicite

  • Intention explicite : Spécifiez le composant cible à démarrer par le nom du composant, tel que startActivity(new Intent(A.this,B.class)); Il n'y a qu'un seul composant à démarrer à chaque fois~
  • Intention implicite : ne spécifiez pas le nom du composant, mais spécifiez l'action, les données ou la catégorie de l'intention. Lorsque nous démarrons le composant, il correspond au filtre d'intention des composants liés à AndroidManifest.xml et correspond aux composants qui répondent les attributs un par un. Lorsque plus d'un Lorsque vous êtes satisfait, une boîte de dialogue apparaîtra nous permettant de choisir lequel commencer~

2. Sept attributs d'intention :


1) ComponentName (nom du composant)


2) Action (action)


3) Catégorie (catégorie)


4) Données (données), Type (type MIME)


5) Suppléments (extra)


6) Drapeaux (drapeau)


3. Exemples d'utilisation d'intention explicite :

C'est très utilisé, voici donc un exemple :

Exemple 1 : Cliquez sur le bouton pour revenir à l'interface d'accueil :  diagramme d'effet courant :

Code de base :

Intent it = new Intent(); 
it.setAction(Intent.ACTION_MAIN); 
it.addCategory(Intent.CATEGORY_HOME); 
startActivity(it);

Exemple 2 : Cliquez sur le bouton pour ouvrir la page Baidu :  diagramme d'effet courant :

Code de base :

Intent it = new Intent(); 
it.setAction(Intent.ACTION_VIEW); 
it.setData(Uri.parse("http://www.baidu.com")); 
startActivity(it);

4. Explication détaillée de l'intention implicite


1) Exemples d'Intents implicites pour des actions prédéfinies :

Exemple de code : après avoir cliqué sur le bouton, toutes les activités dont l'action est AFFICHER sont masquées et ensuite sélectionnées par l'utilisateur :

Code de base :

Créez la mise en page de la deuxième activité et l'activité correspondante, ajoutez le code suivant dans l'événement de clic de bouton de la première activité :

Intent it = new Intent(); 
it.setAction(Intent.ACTION_VIEW); 
startActivity(it);

Enfin, ajoutez le code suivant à l'intention de la deuxième activité :

<activity android:name=".SecondActivity" 
            android:label="第二个Activity"> 
    <intent-filter> 
        <action android:name="android.intent.action.VIEW"/> 
        <category android:name=" android.intent.category.DEFAULT"/> 
    </intent-filter>            
 </activity>
 

Diagramme d'effet de course :


2) Exemples d'intentions implicites pour les actions personnalisées :

Exemple de code : utilisez une action et une catégorie personnalisées pour activer une autre activité

Code principal :  créez la mise en page de la deuxième activité et l'activité correspondante, ajoutez le code suivant dans l'événement de clic de bouton de la première activité :

Intent it = new Intent(); 
it.setAction("mon_action"); 
it.addCategory("my_category"); 
startActivity(it);    

Enfin, ajoutez le code suivant à l'intention de la deuxième activité :

<activity android:name=".SecondActivity" 
        android:label="第二个Activity"> 
    <intent-filter> 
        <action android:name="my_action"/> 
        <category android:name="my_category"/> 
        <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter>            
</activity>

Notez que bien que nous ayons personnalisé une catégorie, nous devons encore ajouter cette valeur par défaut, sinon une erreur sera signalée :

<category android:name="android.intent.category.DEFAULT"/>

5. Collecte d'intentions système couramment utilisée

Publions une collection d'intentions système couramment utilisées. S'il n'y en a pas ci-dessus, n'hésitez pas à suggérer ~

//================================================ == =============== 
//1. Passer un appel 
// Passer un appel au service client mobile 10086 
Uri uri = Uri.parse("tel:10086"); 
Intent intent = new Intent(Intent .ACTION_DIAL, uri); 
startActivity(intent); 

//================================ ======= ============================= 

//2. Envoyer un SMS 
// Envoyer un SMS message avec "Hello" à 10086 
Uri uri = Uri.parse ("smsto:10086"); 
Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
intent.putExtra("sms_body", "Hello"); 
startActivity(intent ); 

//3. Envoyer un MMS (équivalent à envoyer avec un SMS joint) 
Intent intent = new Intent(Intent.ACTION_SEND); 
intent.putExtra("sms_body", "Hello"); 
Uri uri = Uri.parse("content ://media/external/images/media/23");
intent.putExtra(Intent.EXTRA_STREAM, uri); 
intent.setType("image/png"); 
startActivity(intent); 

//===================== = ============================================= 

//4 . Ouvrez le navigateur : 
// Ouvrir la page d'accueil de Baidu 
Uri uri = Uri.parse("http://www.baidu.com"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

// ===== ============================================ ======= ======== 

//5. Envoyer un e-mail : (le service Google est castré !!!!) 
// Envoyer un e-mail à quelqu'[email protected] 
Uri uri = Uri.parse("mailto : quelqu'[email protected] ); 
Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
startActivity(intent); 
// Envoyer un e-mail à quelqu'[email protected] avec le contenu de "Bonjour"
Intent intent = new Intent(Intent.ACTION_SEND); 
intention.
intent.putExtra(Intent.EXTRA_EMAIL, "quelqu'[email protected]"); 
intent.putExtra(Intent.EXTRA_SUBJECT, "Sujet"); 
intent.putExtra(Intent.EXTRA_TEXT, "Bonjour"); 
intention.setType("text/plain"); 
startActivity (intention); 
// 给多人发邮件
Intent intent=new Intent(Intent.ACTION_SEND); 
Chaîne[] tos = {"[email protected]", "[email protected]"} ; // 收件人
String[] ccs = {"[email protected]", "[email protected]"} ; // 抄送
String[] bccs = {"[email protected]", "[email protected]"} ; // 密送
intent.putExtra(Intent.EXTRA_EMAIL, tos); 
intention.putExtra(Intent.EXTRA_CC, ccs); 
intention.putExtra(Intent.EXTRA_BCC, bccs); 
intent.putExtra(Intent.EXTRA_TEXT, "Bonjour"); 
intention.setType("message/rfc822"); 
startActivity (intention);
 
//=================================== ==== ============================== 

//6. Afficher la carte : 
// Ouvrir Google Maps Chine Pékin emplacement (39.9 de latitude nord, 116.3 de longitude est) 
Uri uri = Uri.parse("geo:39.9,116.3"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

//==== =========== ====================================== ============ 

/ / 7. Planification du chemin 
// Planification du chemin : d'un lieu à Pékin (39,9 de latitude nord, 116,3 de longitude est) à un lieu de Shanghai (31,2 de latitude nord, 121,4 de longitude est ) 
Uri uri = Uri.parse("http://maps.google.com/ maps?f=d&saddr=39.9 116.3&daddr=31.2 121.4"); Intent 
intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent ); 

//================= ============================= ====================== 

// 8. Lecture multimédia :
Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri uri = Uri.parse("file:///sdcard/foo.mp3"); 
intent.setDataAndType(uri, "audio/mp3"); 
startActivity(intent); 

// Récupère tous les fichiers audio de la carte SD, puis joue la première chanson =-=  
Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); 
Intent intent = new Intent(Intent.ACTION_VIEW , uri) ; 
startActivity(intention); 

//======================================= ====== ======================= 

//9. Ouvrez l'appareil photo pour prendre des photos : 
// Ouvrez le programme de l'appareil photo 
Intention intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 0 ); 
// Obtenir les données de la photo 
Bundle extras = intent.getExtras(); 
Bitmap bitmap = (Bitmap) extras.get("data"); 

//Another :
//Appelez l'application de l'appareil photo système et stockez les photos prises 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
time = Calendar.getInstance().getTimeInMillis(); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File( Environnement 
.getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg"))); 
startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE); 

//=============== = ================================================= 

//10. Récupérer et couper l'image 
// Récupérer et couper l'image 
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("image/*"); 
intent.putExtra("crop", "true") ; // Activer l'intention de coupe.putExtra 
("aspectX", 1); // Le rapport d'aspect de la coupe est de 1:2 
intent.putExtra("aspectY",2);putExtra("aspectY", 40); 
intention.putExtra("scale", true);
intent.putExtra("noFaceDetection", true); 
intent.putExtra("output", Uri.parse("file:///mnt/sdcard/temp"));
startActivityForResult(intent, 0); 

//=============================== === ==================================== 

//11. Ouvrir Google Market 
// Ouvrir Google Market pour accéder directement à la page de détail du programme 
Uri uri = Uri.parse("market://details?id=" + "com.demo.app"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity (intention); 

//= =========================================== ========= ============ 

//12. Entrez dans l'interface de réglage du téléphone mobile : 
// Entrez dans l'interface de réglage du réseau sans fil (d'autres peuvent être utilisés par analogie)   
Intention intention = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);   
startActivityForResult(intent, 0); 

//============================ ================== ======================= 

//13. Installer apk :
Uri installUri = Uri.fromParts("package", "xxx", null);   
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri); 

//================================================ =============== 

//14.apk: 
Uri uri = Uri.fromParts("package", strPackageName, null);      
Intent it = new Intent(Intent.ACTION_DELETE, uri);      
startActivity(it); 

//================================================ =============== 

//15.发送附件: 
Intent it = new Intent(Intent.ACTION_SEND);      
it.putExtra(Intent.EXTRA_SUBJECT, "Le texte de l'objet de l'e-mail");      
it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/eoe.mp3");      
sendIntent.setType("audio/mp3");      
startActivity(Intent.createChooser(it, "Choose Email Client")); 

//================================================ ===============

//16. Entrez la page de contact : 
Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(People.CONTENT_URI); 
startActivity(intent); 

//======== ================================================= == ===== 


//17. Afficher le contact spécifié : 
Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id ID de contact 
Intent intent = new Intent(); 
intent.setAction ( Intent.ACTION_VIEW); 
intent.setData(personUri); 
startActivity(intent); 

//============================== ==== ================================== 

//18. Appelez l'éditeur système pour ajouter des contacts (valable pour la version supérieure du SDK) : 
//it.setType(Contacts.CONTENT_ITEM_TYPE);     
Intent it = newIntent(Intent.ACTION_INSERT_OR_EDIT);    
it.setType("vnd.android.cursor.item/contact");    
it.putExtra("nom","monNom");    
it.putExtra(android.provider.Contacts.Intents.Insert.COMPANY, "organisation");    
it.putExtra(android.provider.Contacts.Intents.Insert.EMAIL,"email");    
it.putExtra(android.provider.Contacts.Intents.Insert.PHONE,"homePhone");    
it.putExtra(android.provider.Contacts.Intents.Insert.SECONDARY_PHONE,"mobilePhone");    
it.putExtra( android.provider.Contacts.Intents.Insert.TERTIARY_PHONE,"workPhone");    
it.putExtra(android.provider.Contacts.Intents.Insert.JOB_TITLE,"title");    
startActivity(it); 

//================================================ =============== 

Intent intent = newIntent(Intent.    ACTION_INSERT_OR_EDIT ); 
intention.setType(People.CONTENT_ITEM_TYPE);    
intent.putExtra(Contacts.Intents.Insert.NAME, "Mon nom");    
intent.putExtra(Contacts.Intents.Insert.PHONE, "+1234567890");    
intent.putExtra(Contacts.Intents.Insert.PHONE_TYPE,Contacts.PhonesColumns.TYPE_MOBILE);    
intent.putExtra(Contacts.Intents.Insert.EMAIL, "[email protected]");    
intent.putExtra(Contacts.Intents.Insert.EMAIL_TYPE, Contacts.ContactMethodsColumns.TYPE_WORK);    
startActivity (intention); 

//================================================ =============== 

//20.打开另一程序
Intent i = new Intent();     
ComponentName cn = new ComponentName("com.example.jay.test",       
"com.example.jay.test.     
i.setComponent(cn);      
i.setAction("android.intent.action.MAIN");      
startActivityForResult(i, RESULT_OK); 

//================================== ==== =============================== 

//21. Ouvrez l'enregistreur 
Intent mi = new Intent(Media .RECORD_SOUND_ACTION);      
startActivity(mi) ; 

//======================================= ========== ================ 

//22. Rechercher du contenu sur Google 
Intent intent = new Intent();      
intent.setAction(Intent.ACTION_WEB_SEARCH) ;      
intent.putExtra(SearchManager.QUERY," searchString")      
startActivity(intent); 

//============================== ============== =========================

6. Où puis-je trouver l'Action ?

A l'origine, je voulais poster l'action d'intention collectée avant, mais après réflexion, il vaut mieux lui apprendre à pêcher que lui apprendre à pêcher. Si vous avez téléchargé le document Android, vous pouvez le trouver dans le chemin suivant :

sdk-->docs-->référence-->android--->contenu--->Intent.html

Trouvez cette chose et commencez avec ces constantes :

Lorsque vous rencontrez des étrangers, vous pouvez vérifier ici ~

Je suppose que tu aimes

Origine blog.csdn.net/leyang0910/article/details/131350300
conseillé
Classement