Outros Recursos
Date Picker
Recurso que permite manipular dados do calendário.
Para mais detalhes: GOOGLE DEVELOPERS. DatePicker. Disponível em: https://developer.android.com/reference/android/widget/DatePicker. Acesso em: 01 set. 2025.
Exemplos práticos:
-
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity"> <DatePicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:datePickerMode="calendar" android:id="@+id/datePicker"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clicar" android:text="Date" android:id="@+id/buttonDate"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Date" android:id="@+id/textViewDate"/> </LinearLayout>
-
link:um/MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private Button buttonDate; private TextView textViewDate; private DatePicker datePicker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); datePicker=findViewById(R.id.datePicker); buttonDate=findViewById(R.id.buttonDate); textViewDate=findViewById(R.id.textViewDate); } private String obterData(){ int dia=0,mes=0,ano=0; String date=""; dia=datePicker.getDayOfMonth(); mes=datePicker.getMonth()+1; ano=datePicker.getYear(); date=dia+"/"+mes+"/"+ano; return date; } public void clicar(View view) { textViewDate.setText(obterData()); } }//class
Date Picker Dialog
Recurso que permite manipular dados do calendário.
Para mais detalhes: GOOGLE DEVELOPERS. DatePickerDialog. Disponível em: https://developer.android.com/reference/android/widget/DatePickerDialog. Acesso em: 01 set. 2025.
Exemplos práticos:
-
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Date" android:onClick="clicar" android:id="@+id/textViewDate"/> </LinearLayout>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.app.DatePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; import java.util.Calendar; public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener { private TextView textViewDate; private DatePickerDialog datePickerDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textViewDate=findViewById(R.id.textViewDate); } public void clicar(View view) { if(view.getId() == R.id.textViewDate){ Calendar calendar = Calendar.getInstance(); int dia = calendar.get(Calendar.DAY_OF_MONTH); int mes = calendar.get(Calendar.MONTH)+1; int ano = calendar.get(Calendar.YEAR); datePickerDialog = new DatePickerDialog(MainActivity.this, this, ano,mes,dia); datePickerDialog.show(); } } @Override public void onDateSet(DatePicker datePicker, int year, int month, int day) { String date = day+"/"+month+"/"+year; textViewDate.setText(date); } }//class
Time Picker
Recurso que permite manipular dados das horas.
Para mais detalhes: GOOGLE DEVELOPERS. TimePicker. Disponível em: https://developer.android.com/reference/android/widget/TimePicker. Acesso em: 01 set. 2025.
Exemplos práticos:
-
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity"> <TimePicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:timePickerMode="clock" android:id="@+id/timePicker"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="CLICK" android:onClick="clicar" android:id="@+id/button"/> </LinearLayout>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.app.DatePickerDialog; import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import java.util.Calendar; public class MainActivity extends AppCompatActivity { private TimePicker timePicker; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); timePicker = findViewById(R.id.timePicker); timePicker.setIs24HourView(true); button = findViewById(R.id.button); }//onCreate private void obter(){ int hora =0,minuto=0; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { hora = timePicker.getHour(); minuto = timePicker.getMinute(); }else{ hora = timePicker.getCurrentHour(); minuto = timePicker.getCurrentMinute(); } String tempo = hora+":"+minuto; Toast.makeText(getApplicationContext(),tempo,Toast.LENGTH_SHORT).show(); } public void clicar(View view) { obter(); }//method }//class
Time Picker Dialog
Recurso que permite manipular dados das horas.
Para mais detalhes: GOOGLE DEVELOPERS. TimePickerDialog. Disponível em: https://developer.android.com/reference/android/widget/TimePickerDialog. Acesso em: 01 ago. 2025.
Exemplos práticos:
-
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="CLICK" android:onClick="clicar" android:id="@+id/button"/> </LinearLayout>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.app.TimePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.util.Calendar; public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { abrirTimePicker(); } }); } private void abrirTimePicker() { Calendar calendar = Calendar.getInstance(); int horaAtual = calendar.get(Calendar.HOUR_OF_DAY); int minutoAtual = calendar.get(Calendar.MINUTE); TimePickerDialog dialog = new TimePickerDialog( this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(android.widget.TimePicker view, int horaSelecionada, int minutoSelecionado) { String tempo = String.format("%2d:%2d", horaSelecionada, minutoSelecionado); Toast.makeText(getApplicationContext(), "Hora escolhida: " + tempo, Toast.LENGTH_SHORT).show(); } }, horaAtual, minutoAtual, true ); dialog.show(); } }
SMS
Recurso que permite acessar o aplicativo de SMS que já vem instalado no dispositivo móvel.
Exemplos práticos (Adaptado de: How to get the package name of sms app(default) in Android before KitKat version? Disponível em: https://stackoverflow.com/questions/29471386/how-to-get-the-package-name-of-sms-appdefault-in-android-before-kitkat-version?noredirect=1&lq=1. Pergunta realizada pelo usuário: https://stackoverflow.com/users/3986081/malleswar-chinta e respondida pelo usuário: https://stackoverflow.com/users/3020568/deniz.):
-
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" android:padding="16dp" tools:context=".MainActivity"> <EditText android:id="@+id/editNumero" android:layout_width="0dp" android:layout_height="wrap_content" android:hint="Digite o número" android:inputType="phone" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" /> <EditText android:id="@+id/editMensagem" android:layout_width="0dp" android:layout_height="wrap_content" android:hint="Digite a mensagem" app:layout_constraintTop_toBottomOf="@id/editNumero" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="12dp"/> <Button android:id="@+id/buttonSms" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enviar SMS" app:layout_constraintTop_toBottomOf="@id/editMensagem" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="16dp"/> </androidx.constraintlayout.widget.ConstraintLayout>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private EditText editNumero, editMensagem; private Button buttonSms; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editNumero = findViewById(R.id.editNumero); editMensagem = findViewById(R.id.editMensagem); buttonSms = findViewById(R.id.buttonSms); buttonSms.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { enviarSms(); } }); } private void enviarSms() { String numero = editNumero.getText().toString().trim(); String mensagem = editMensagem.getText().toString().trim(); Uri uri = Uri.parse("smsto:" + numero); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra("sms_body", mensagem); startActivity(intent); } }
Recurso que permite acessar o aplicativo WhatsApp instalado no dispositivo móvel.
Exemplos práticos(Adaptado de: https://faq.whatsapp.com/android/im-an-android-developer-how-can-i-integrate-whatsapp-with-my-app/?lang=en):
-
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:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CLICK" android:id="@+id/buttonWhatsApp" android:onClick="clicar" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button buttonWA; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonWA = findViewById(R.id.buttonWhatsApp); } public void clicar(View v) { if (v.getId() == R.id.buttonWhatsApp) { String texto = "Hello World"; Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, texto); intent.setPackage("com.whatsapp"); try { startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(this, "WhatsApp não instalado, abrindo Play Store", Toast.LENGTH_SHORT).show(); Intent playStoreIntent = new Intent(Intent.ACTION_VIEW); playStoreIntent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.whatsapp")); startActivity(playStoreIntent); } } } }
Gmail
Recurso que permite acessar o aplicativo Gmail instalado no dispositivo móvel.
Exemplos práticos:
-
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:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CLICK" android:id="@+id/buttonGmail" android:onClick="clicar" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button buttonGmail; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonGmail = findViewById(R.id.buttonGmail); } public void clicar(View v) { if (v.getId() == R.id.buttonGmail) { String[] email = {"email@gmail.com"}; String subject = "MyTitle"; String text = "MyText"; Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("mailto:")); intent.putExtra(Intent.EXTRA_EMAIL, email); intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.putExtra(Intent.EXTRA_TEXT, text); intent.setPackage("com.google.android.gm"); try { startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(this, "Gmail não instalado, abrindo Play Store", Toast.LENGTH_SHORT).show(); Intent playStoreIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.google.android.gm")); startActivity(playStoreIntent); } } } }
Video View
Recurso que oferece controle de vídeo como: play, pause e stop.
Para mais detalhes: GOOGLE DEVELOPERS. VideoView. Disponível em: https://developer.android.com/reference/android/widget/VideoView. Acesso em: 01 set. 2024.
Text To Speech
Recurso que converte o texto disponível em seu app em voz.
Para mais detalhes: GOOGLE DEVELOPERS. TextToSpeech. Disponível em: https://developer.android.com/reference/android/speech/tts/TextToSpeech e ANDROID DEVELOPERS BLOG. An introduction to Text-To-Speech in Android. Disponível em: https://android-developers.googleblog.com/2009/09/introduction-to-text-to-speech-in.html.
Exemplos práticos(Exemplo adaptado das seguintes fontes: Text to speech (TTS) - Android. Disponível em:<https://stackoverflow.com/questions/3058919/text-to-speechtts-android, pergunta realizada pelo usuário https://stackoverflow.com/users/366916/bharathi e respondida pelo usuário https://stackoverflow.com/users/3166375/sifat-ifty. Playing a video in VideoView in Anroid. Disponível em:https://stackoverflow.com/questions/3263736/playing-a-video-in-videoview-in-android, pergunta realizada pelo usuário https://stackoverflow.com/users/2355649/muhammad-maqsoodur-rehman e respondida pelo usuário https://stackoverflow.com/users/3681880/suragch.):
-
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" android:layout_margin="10dp" tools:context=".MainActivity"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="Digite seu nome" android:id="@+id/editTextNome"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/buttonProximo" android:onClick="clicar" android:text="próximo"/> </LinearLayout>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { private Button button; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.buttonProximo); editText = findViewById(R.id.editTextNome); }//onCreate public void clicar(View view) { if(view.getId() == R.id.buttonProximo){ String nome = editText.getText().toString(); Intent intent = new Intent(getApplicationContext(),Activity2.class); intent.putExtra("nome",nome); startActivity(intent); } }//clicar }
-
activity_segunda.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" android:layout_margin="10dp" tools:context=".MainActivity"> <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="665dp" /> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="wrap_content"> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:onClick="click" android:text="play" android:id="@+id/buttonPlay" /> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:onClick="click" android:text="pause" android:id="@+id/buttonPause" /> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:onClick="click" android:text="stop" android:id="@+id/buttonStop" /> </LinearLayout> </LinearLayout>
-
SegundaActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; import android.widget.VideoView; import java.util.Locale; public class Activity2 extends AppCompatActivity implements TextToSpeech.OnInitListener { //interface para fornecer o método de suporte private VideoView videoView; private Button buttonPlay,buttonPause, buttonStop; private Uri uri; private TextToSpeech textToSpeech; private String msg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_2); String nome = getIntent().getStringExtra("nome"); msg = nome+" seu vídeo está pronto"; textToSpeech = new TextToSpeech(getApplicationContext(),this); videoView = findViewById(R.id.videoView); buttonPlay = findViewById(R.id.buttonPlay); buttonPause = findViewById(R.id.buttonPause); buttonStop = findViewById(R.id.buttonStop); uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.video); //local de onde se encontra o recurso videoView.setVideoURI(uri); //configura o recurso no VideoView }//onCreate public void click(View view){ if(view.getId() == R.id.buttonPlay){ int duracao = videoView.getDuration(); Toast.makeText(getApplicationContext(),"Tempo total: "+duracao, Toast.LENGTH_SHORT).show(); videoView.start(); //começa o vídeo } if(view.getId() == R.id.buttonPause){ videoView.pause(); int posicao = videoView.getCurrentPosition(); //obtém a posição atual do vídeo Toast.makeText(getApplicationContext(),"Tempo atual: "+posicao, Toast.LENGTH_SHORT).show(); } if(view.getId() == R.id.buttonStop){ videoView.stopPlayback(); //para o vídeo Toast.makeText(getApplicationContext(),"Vídeo não pode ser mais reproduzido ", Toast.LENGTH_SHORT).show(); finish(); } }//click @Override public void onInit(int i) { if(i == TextToSpeech.SUCCESS){ Locale locale = new Locale("pt","br"); //define o idioma int result = textToSpeech.setLanguage(locale); //define o idioma no TextToSpeech textToSpeech.setSpeechRate(0.5f); //define a velocidade da fala if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED){ //verifica se existe suporte ao idioma Log.e("problemasI","problemas com o idioma"); }else{ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ //verifica as versões do Android textToSpeech.speak(msg,TextToSpeech.QUEUE_FLUSH, //passa a mensagem para o método. Os textos passados aqui serão pronunciados. null,null); }else{ textToSpeech.speak(msg, TextToSpeech.QUEUE_FLUSH, null); //passa a mensagem para o método. Os textos passados aqui serão pronunciados. } } }else{ Log.e("problemasT","problemas com o textToSpeech"); } }//onInit }//class
-
criar uma pasta chamada raw no projeto, o vídeo deve estar armazenado dentro desta pasta.
Gravar áudio
No Android é possível gravar áudio com o uso da classe AudioRecord e AudioTrack. O repositório disponível em: https://github.com/dolbyio-samples/media-sample-android-recording-local-files fornece exemplos práticos de como usar estas classes em projetos Android. Os perfis dos contribuidores no projeto: https://github.com/alaboy3, https://github.com/j12y e https://github.com/mjren23).