Die grundlegende Verwendung von Androids Intent

Einführung in diesen Abschnitt:

Nach dem Ende des vorherigen Abschnitts bedeutet dies, dass wir mit dem Erlernen der vier Hauptkomponenten von Android ~ fertig sind. In diesem Abschnitt möchten wir den Knotenpunkt zwischen den vier Hauptkomponenten lernen – Absicht (Absicht), die Brücke von Android Kommunikation können wir zum Beispiel weitergeben:

  • startActivity (Intent)/ startActivityForResult (Intent): um eine Aktivität zu starten
  • startService (Intent)/ bindService (Intent): um einen Dienst zu starten
  • sendBroadcast : Sendet einen Broadcast an den angegebenen BroadcastReceiver
  • Vergessen Sie außerdem nicht, dass wir bei der Registrierung der vier Hauptkomponenten eine Menge Intent-Filter ~ geschrieben haben

Nun, ohne weitere Umschweife, beginnen wir mit diesem Abschnitt! Darüber hinaus haben wir Intent bereits zuvor verwendet, daher werden wir nicht über konzeptionelle Dinge sprechen ~ Alte Regeln, offizielle API: Intent


1. Der Unterschied zwischen expliziter Absicht und impliziter Absicht

  • Explizite Absicht : Geben Sie die zu startende Zielkomponente anhand des Komponentennamens an, z. B. startActivity(new Intent(A.this,B.class)); Es gibt jedes Mal nur eine zu startende Komponente~
  • Implizite Absicht : Geben Sie nicht den Komponentennamen an, sondern geben Sie die Aktion, die Daten oder die Kategorie der Absicht an. Wenn wir die Komponente starten, stimmt sie mit dem Absichtsfilter der AndroidManifest.xml-bezogenen Komponenten und den entsprechenden Komponenten überein die Attribute einzeln. Wenn mehr als eins Wenn Sie zufrieden sind, wird ein Dialogfeld angezeigt, in dem Sie auswählen können, welches gestartet werden soll~

2. Sieben Eigenschaften der Absicht:


1) ComponentName (Komponentenname)


2) Aktion (Aktion)


3) Kategorie (Kategorie)


4) Daten (Daten), Typ (MIME-Typ)


5) Extras (extra)


6) Flaggen (Flagge)


3. Beispiele für explizite Intent-Nutzung:

Dies wird häufig verwendet, daher hier ein Beispiel:

Beispiel 1: Klicken Sie auf die Schaltfläche, um zur Home-Oberfläche zurückzukehren:  Ausführen des Effektdiagramms:

Kerncode:

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

Beispiel 2: Klicken Sie auf die Schaltfläche, um die Baidu-Seite zu öffnen:  Laufeffektdiagramm:

Kerncode:

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

4. Detaillierte Erläuterung der impliziten Absicht


1) Beispiele für implizite Absichten für vordefinierte Aktionen:

Codebeispiel: Nachdem auf die Schaltfläche geklickt wurde, werden alle Aktivitäten, deren Aktion VIEW ist, ausgeblendet und vom Benutzer weiter ausgewählt:

Kerncode:

Erstellen Sie das Layout der zweiten Aktivität und der entsprechenden Aktivität und fügen Sie den folgenden Code in das Schaltflächenklickereignis der ersten Aktivität ein:

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

Fügen Sie abschließend den folgenden Code zum Intent der zweiten Aktivität hinzu:

<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>
 

Laufeffektdiagramm:


2) Beispiele für implizite Absichten für benutzerdefinierte Aktionen:

Codebeispiel: Verwenden Sie eine benutzerdefinierte Aktion und Kategorie, um eine andere Aktivität zu aktivieren

Kerncode:  Erstellen Sie das Layout der zweiten Aktivität und der entsprechenden Aktivität. Fügen Sie den folgenden Code zum Schaltflächenklickereignis der ersten Aktivität hinzu:

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

Fügen Sie abschließend den folgenden Code zum Intent der zweiten Aktivität hinzu:

<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>

Beachten Sie, dass wir, obwohl wir eine Kategorie angepasst haben, diesen Standard noch hinzufügen müssen, andernfalls wird ein Fehler gemeldet:

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

5. Häufig verwendetes System zur Absichtserfassung

Lassen Sie uns eine Sammlung häufig verwendeter Systemabsichten veröffentlichen. Wenn oben keine vorhanden sind, können Sie gerne Vorschläge machen~

//============================================= == =============== 
//1. Rufen Sie an 
// Rufen Sie den mobilen Kundendienst an 10086 
Uri uri = Uri.parse("tel:10086"); 
Absicht Absicht = new Intent(Intent .ACTION_DIAL, uri); 
startActivity(intent); 

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

// 2. Eine Textnachricht senden 
// Eine Textnachricht senden Nachricht mit „Hallo“ an 10086 
Uri uri = Uri.parse („smsto:10086“); 
Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
intent.putExtra(“sms_body“, „Hello“); 
startActivity(intent ); 

//3. MMS senden (entspricht dem Senden mit angehängter SMS) 
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. Öffnen Sie den Browser: 
// Öffnen Sie Baidu Homepage 
Uri uri = Uri.parse ("http://www.baidu.com"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

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

//5 .Sende eine E-Mail: (Google-Dienst ist kastriert!!!!) 
// E-Mail an [email protected] 
Uri uri = Uri.parse("mailto:[email protected]" ); 
Intent intent = new Intent (Intent.ACTION_SENDTO, uri); 
startActivity(intent); 
// Eine E-Mail an [email protected] senden Eine E-Mail mit dem Inhalt „Hallo“ senden
Absicht Absicht = neue Absicht(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_EMAIL, "[email protected]"); 
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
intent.putExtra(Intent.EXTRA_TEXT, "Hallo"); 
intent.setType("text/plain"); 
startActivity(intent); 
// 给多人发邮件
Intent intent=new Intent(Intent.ACTION_SEND); 
String[] tos = {"[email protected]", "[email protected]"}; // 收件人
String[] ccs = {"[email protected]", "[email protected]"}; // 
String[] bccs = {"[email protected]", "[email protected]"}; // 密送
intent.putExtra(Intent.EXTRA_EMAIL, tos); 
intent.putExtra(Intent.EXTRA_CC, ccs); 
intent.putExtra(Intent.EXTRA_BCC, bccs); 
Absicht.
intent.putExtra(Intent.EXTRA_TEXT, 
intent.setType("message/rfc822"); 
startActivity(intent);
 
//================================== ==== ============================== 

//6. Zeigen Sie die Karte an: 
// Öffnen Sie Google Maps China Beijing Standort (39,9 nördlicher Breitengrad, 116,3 östlicher Längengrad) 
Uri uri = Uri.parse("geo:39.9,116.3"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

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

/ /7. Wegplanung 
// Wegplanung: von einem Ort in Peking (39,9 nördlicher Breite, 116,3 östlicher Länge) zu einem Ort in Shanghai (31,2 nördlicher Breite, 121,4 östlicher Länge). ) 
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. Multimedia-Wiedergabe:
Absicht intent = new Intent(Intent.ACTION_VIEW); 
//Andere:
Uri uri = Uri.parse("file:///sdcard/foo.mp3"); 
intent.setDataAndType(uri, "audio/mp3"); 
startActivity(intent); 

//Alle Audiodateien auf der SD-Karte abrufen, und dann das erste Lied abspielen =-=  
Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

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

//9. Öffnen Sie die Kamera, um Bilder aufzunehmen: 
// Öffnen Sie das Kameraprogramm 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 0); 
/ / Nehmen Sie die Fotodaten heraus. 
Bundle extras = intent .getExtras(); 
Bitmap bitmap = (Bitmap) extras.get("data"); 

// Rufen Sie die Systemkameraanwendung auf und speichern Sie die aufgenommenen Fotos 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
time = Calendar.getInstance().getTimeInMillis(); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File( Environment 
.getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg"))); 
startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE); 

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

//10. Bild abrufen und ausschneiden 
// Bild abrufen und ausschneiden 
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("image/*"); 
intent.putExtra("crop", "true") ; // Schneiden aktivieren 
intent.putExtra("aspectX", 1); // Das Seitenverhältnis des Schneidens beträgt 1:2 
intent.putExtra("aspectY",2);putExtra("aspectY", 40); 
intent.putExtra("scale", true);
intent.putExtra("noFaceDetection", true); 
//13. APK installieren:
intent.putExtra("output", Uri.parse("file:///mnt/sdcard/temp"));
startActivityForResult(intent, 0); 

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

//11. Öffnen Sie Google Market 
// Öffnen Sie Google Market und rufen Sie direkt die Detailseite des Programms 
Uri uri auf = Uri.parse("market ://details?id=" + "com.demo.app"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

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

// 12. Rufen Sie die Einstellungsschnittstelle für Mobiltelefone auf: 
// Rufen Sie die Einstellungsschnittstelle für das drahtlose Netzwerk auf (andere können analog verwendet werden)   
Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS );   
startActivityForResult(intent, 0); 

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

Uri installUri = Uri.fromParts("package", "xxx", null);   
sendIntent.setType("audio/mp3");      
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, „Der E-Mail-Betrefftext“);      
it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/eoe.mp3");      
startActivity(Intent.createChooser(it, „E-Mail-Client auswählen“)); 

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

//16. Geben Sie die Kontaktseite ein: 
Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(People.CONTENT_URI); 
startActivity(intent); 

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


//17. Den angegebenen Kontakt anzeigen: 
Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id contact ID 
Intent intent = new Intent(); 
intent.setAction ( Intent.ACTION_VIEW); 
intent.setData(personUri); 
startActivity(intent); 

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

//18. Rufen Sie den Systemeditor auf, um Kontakte hinzuzufügen (gültig für höhere SDK-Versionen):  
Intent it = newIntent(Intent.ACTION_INSERT_OR_EDIT);    
it .setType("vnd.android.cursor.item/contact");     
//it.setType(Contacts.CONTENT_ITEM_TYPE);    
it.putExtra("name","myName");    
it.putExtra(android.provider.Contacts.Intents.Insert.COMPANY, "organization");    
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); 

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

Absicht Absicht = newIntent(Absicht.    ACTION_INSERT_OR_EDIT); 
intent.setType(People.CONTENT_ITEM_TYPE);    
intent.putExtra(Contacts.Intents.Insert.NAME, "Mein Name");    
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(intent); 

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

//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. Öffnen Sie den Rekorder 
Intent mi = new Intent(Media .RECORD_SOUND_ACTION);      
startActivity(mi) ; 

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

//22. Inhalte von Google durchsuchen 
Intent intent = new Intent();      
intent.setAction(Intent.ACTION_WEB_SEARCH) ;      
intent.putExtra(SearchManager.QUERY," searchString")      
startActivity(intent); 

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

6. Wo finde ich die Aktion?

Ursprünglich wollte ich die zuvor gesammelte Absichtsaktion veröffentlichen, aber nachdem ich darüber nachgedacht habe, ist es besser, ihr das Fischen beizubringen, als ihr das Fischen beizubringen. Wenn Sie das Android-Dokument heruntergeladen haben, finden Sie es im folgenden Pfad:

sdk-->docs-->reference-->android--->content--->Intent.html

Finden Sie dieses Ding und beginnen Sie mit dieser Konstante:

Wenn Sie Fremde treffen, können Sie hier nachsehen~

Ich denke du magst

Origin blog.csdn.net/leyang0910/article/details/131350300
Empfohlen
Rangfolge