Ví dụ về Android Intent không tường minh, mở một URL, gửi một email
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.


Ví dụ đơn giản dưới đây, khi bạn click vào một Button yêu cầu xem một trang web cho bởi một URL, bạn tạo một ý định (Intent) không tường minh, Intent được gửi cho hệ thống Android quyết định sẽ mở thành phần gì, có thể trong thiết bị của bạn cài nhiều trình duyệt khác nhau (Firefox, Chrome,..), thiết bị sẽ mở nó bằng trình duyệt mặc định hoặc trình duyệt mà bạn ưu thích.

Ngoài ra ví dụ cũng bao gồm:
- Gửi email

Chú ý: Hệ thống Android sẽ cố gắng tìm kiếm một ứng dụng tốt nhất của nó để gửi email. Trên thiết bị giả lập (emulator) có thể không có một ứng dụng gửi email đủ tốt.
Tạo mới Android project có tên "ImplicitIntentExample".

- Name: ImplicitIntentExample
- Package name: org.o7planning.implicitintentexample

Giao diện của ứng dụng:

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button_openURL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="38dp"
android:text="Open Google.com"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button_sendEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="42dp"
android:text="Send Email"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button_openURL" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.implicitintentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button buttonOpenURL;
private Button buttonSendEmail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.buttonOpenURL = (Button) this.findViewById(R.id.button_openURL);
this.buttonSendEmail = (Button) this.findViewById(R.id.button_sendEmail);
this.buttonOpenURL.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openURL();
}
});
this.buttonSendEmail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendEmail();
}
});
}
// The method is called when the user clicks on "Open google.com" button.
public void openURL( ) {
String url="https://google.com";
// An implicit intent, request a URL.
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
this.startActivity(intent);
}
// The method is called when the user clicks on "Send Email" button.
public void sendEmail( ) {
// List of recipients
String[] recipients=new String[]{"friendemail@gmail.com"};
String subject="Hi, how are you!";
String content ="This is my test email";
Intent intentEmail = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
intentEmail.putExtra(Intent.EXTRA_EMAIL, recipients);
intentEmail.putExtra(Intent.EXTRA_SUBJECT, subject);
intentEmail.putExtra(Intent.EXTRA_TEXT, content);
intentEmail.setType("text/plain");
startActivity(Intent.createChooser(intentEmail, "Choose an email client from..."));
}
}