ImplicitApp
Hallo temen2, kita akan belajar membuat implicit app di projek kali ini,
yaitu membuat intent ke program bawaan android itu sendiri,
seperti : kamera,sms, telepon dan kontak...
yuk kita lihat langkah2nya...
1. langkah pertama, kita membuat layoutnya terlebih dahulu
layout activity_main
<?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:id="@+id/btn_audio_manager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Audio Manager"/>
<Button
android:id="@+id/btn_notification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Notification"/>
<Button
android:id="@+id/btn_wifi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Wifi"/>
<Button
android:id="@+id/btn_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Email"/>
<Button
android:id="@+id/btn_sms"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="SMS"/>
<Button
android:id="@+id/btn_alarm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ALARM"/>
</LinearLayout>
layout audio_manager
<?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=".AudioManager">
<Button
android:id="@+id/btn_ring"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ring"/>
<Button
android:id="@+id/btn_silent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Silent"/>
<Button
android:id="@+id/btn_vibrate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Vibrate"/>
</LinearLayout>
layout wifi
<?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=".WifiActivity">
<Switch
android:id="@+id/sw_wifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Access Wifi"/>
<TextView
android:id="@+id/tv_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Status Wifi"/>
</LinearLayout>
layout SMS
<?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=".SmsActivity">
<EditText
android:id="@+id/edt_to"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="To"
android:clickable="false"
android:focusable="false"
android:inputType="phone"/>
<EditText
android:id="@+id/edt_body_sms"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Message"
android:lines="5"/>
<Button
android:id="@+id/btn_send"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Quick SMS Send"/>
<Button
android:id="@+id/btn_send_intent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Intent SMS Send"/>
</LinearLayout>
layout email
<?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=".EmailActivity">
<EditText
android:id="@+id/edt_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="To"/>
<EditText
android:id="@+id/edt_subject"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Subject"/>
<EditText
android:id="@+id/edt_body_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:lines="5"
android:hint="Compose Email"/>
<Button
android:id="@+id/btn_send"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Send"/>
</LinearLayout>
layout alarm
<?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=".AlarmActivity">
<AnalogClock
android:id="@+id/analog_clock"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"/>
<Button
android:id="@+id/btn_set_alarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="Set Alarm"/>
<TextView
android:id="@+id/tv_time_alarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:text="Set Time Alarm"/>
</LinearLayout>
kemudian jangan kita membuat package baru di res untuk memberi sound alarm kita,
kita beri nama raw
lalu kita pastekan kedalamnya file mp3 kita
2. langkah kedua, kita masukan library di module app berikut
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.implicitapp"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
3. langkah ketiga, kita membuat kelas...
kita buat class AudioManager
package com.example.implicitapp;
import androidx.appcompat.app.AppCompatActivity;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Toast;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class AudioManager extends AppCompatActivity {
@BindView(R.id.btn_ring)
Button btnRing;
@BindView(R.id.btn_silent)
Button btnSilent;
@BindView(R.id.btn_vibrate)
Button btnVibrate;
android.media.AudioManager audioManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio_manager);
ButterKnife.bind(this);
audioManager = (android.media.AudioManager) getSystemService(AUDIO_SERVICE);
}
@OnClick({R.id.btn_ring, R.id.btn_silent, R.id.btn_vibrate})
public void onViewClicked(View view){
switch (view.getId()){
case R.id.btn_ring:
audioManager.setRingerMode(android.media.AudioManager.RINGER_MODE_NORMAL);
Toast.makeText(this, "Mode Normal", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_silent:
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& !notificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
}
audioManager.setRingerMode(android.media.AudioManager.RINGER_MODE_SILENT);
Toast.makeText(this, "Mode Silent", Toast.LENGTH_SHORT).show();
break;
case R.id.btn_vibrate:
audioManager.setRingerMode(android.media.AudioManager.RINGER_MODE_VIBRATE);
Toast.makeText(this, "Mode Vibrate", Toast.LENGTH_SHORT).show();
break;
}
}
}
Class Wifi
package com.example.implicitapp;
import androidx.appcompat.app.AppCompatActivity;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
import butterknife.BindView;
import butterknife.ButterKnife;
public class WifiActivity extends AppCompatActivity {
@BindView(R.id.sw_wifi)
Switch swWifi;
@BindView(R.id.tv_status)
TextView tvStatus;
WifiManager wifiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wifi);
ButterKnife.bind(this);
wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
if (wifiManager.isWifiEnabled()){
swWifi.setChecked(true);
tvStatus.setText("Wifi Aktif");
}else {
swWifi.setChecked(false);
tvStatus.setText("Wifi Tidak Aktif");
}
swWifi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
wifiManager.setWifiEnabled(true);
tvStatus.setText("Wifi Aktif");
}else {
wifiManager.setWifiEnabled(false);
tvStatus.setText("Wifi Tidak Aktif");
}
}
});
}
}
kemudian kita buat class Email
package com.example.implicitapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class EmailActivity extends AppCompatActivity {
@BindView(R.id.edt_email)
EditText edtEmail;
@BindView(R.id.edt_subject)
EditText edtSubject;
@BindView(R.id.edt_body_email)
EditText edtBodyEmail;
@BindView(R.id.btn_send)
Button btnSend;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_email);
ButterKnife.bind(this);
}
@OnClick(R.id.btn_send)
public void onViewClicked(){
String email = edtEmail.getText().toString().trim();
String subject = edtSubject.getText().toString().trim();
String bodyemail = edtBodyEmail.getText().toString().trim();
if (TextUtils.isEmpty(email) || TextUtils.isEmpty(subject) || TextUtils.isEmpty(bodyemail)){
Toast.makeText(this, "Fill Requared!", Toast.LENGTH_SHORT).show();
}else{
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{email});
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, bodyemail);
intent.setType("message/rfc822");
startActivity(intent);
}
}
}
lalu kita membuat class SMS
package com.example.implicitapp;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class SmsActivity extends AppCompatActivity {
@BindView(R.id.edt_to)
EditText edtTo;
@BindView(R.id.edt_body_sms)
EditText edtBodySms;
@BindView(R.id.btn_send)
Button btnSend;
@BindView(R.id.btn_send_intent)
Button btnSendIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);
ButterKnife.bind(this);
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.SEND_SMS)){
}else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.SEND_SMS},
10);
}
}
}
@OnClick({R.id.edt_to, R.id.btn_send, R.id.btn_send_intent})
public void onViewClicked(View view){
String noTelp = edtTo.getText().toString().trim();
String bodySms = edtBodySms.getText().toString().trim();
switch (view.getId()){
case R.id.edt_to:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 100);
break;
case R.id.btn_send:
if (TextUtils.isEmpty(noTelp) || TextUtils.isEmpty(bodySms)){
Toast.makeText(this, "Fill required", Toast.LENGTH_SHORT).show();
}else {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(noTelp, null, bodySms, null, null);
Toast.makeText(this, "Sent", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_send_intent:
if (TextUtils.isEmpty(noTelp) || TextUtils.isEmpty(bodySms)){
Toast.makeText(this, "Fill required", Toast.LENGTH_SHORT).show();
}else {
Intent intentSms = new Intent(Intent.ACTION_SENDTO);
intentSms.setData(Uri.parse("sms to: " + Uri.encode(noTelp)));
intentSms.putExtra("sms_body", bodySms);
startActivity(intentSms);
}
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100){
if (resultCode == RESULT_OK){
Cursor cursor = null;
Uri uri = data.getData();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
cursor = getContentResolver().query(uri, new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER},
null, null, null, null);
}
if (cursor != null && cursor.moveToNext()){
String nomerTelepon = cursor.getString(0);
edtTo.setText(nomerTelepon);
}
}else if (resultCode == RESULT_CANCELED){
Toast.makeText(this, "Cancel", Toast.LENGTH_SHORT).show();
}
}
}
}
lalu membuat class AlarmActivity
package com.example.implicitapp;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.icu.util.Calendar;
import android.os.Build;
import android.os.Bundle;
import android.widget.AnalogClock;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class AlarmActivity extends AppCompatActivity {
@BindView(R.id.analog_clock)
AnalogClock analogClock;
@BindView(R.id.btn_set_alarm)
Button btnSetAlarm;
@BindView(R.id.tv_time_alarm)
TextView tvTimeAlarm;
TimePickerDialog timePickerDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
ButterKnife.bind(this);
}
TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
Calendar calNow = Calendar.getInstance();
Calendar calSet = (Calendar) calNow.clone();
calSet.set(Calendar.HOUR_OF_DAY, i);
calSet.set(Calendar.MINUTE, i1);
calSet.set(Calendar.SECOND, 0);
calSet.set(Calendar.MILLISECOND, 0);
if (calSet.compareTo(calNow) <= 0){
calSet.add(Calendar.DATE, 1);
}else if(calSet.compareTo(calNow) > 0){
Toast.makeText(AlarmActivity.this, "Alarm setted", Toast.LENGTH_SHORT).show();
}
tvTimeAlarm.setText("Alarm set for : " + calSet.getTime());
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 1, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), pendingIntent);
}
};
@RequiresApi(api = Build.VERSION_CODES.N)
@OnClick(R.id.btn_set_alarm)
public void onViewClicked(){
Calendar calendar = Calendar.getInstance();
timePickerDialog = new TimePickerDialog(this, timeSetListener,
calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true);
timePickerDialog.setTitle("set time alarm");
timePickerDialog.show();
}
}
lalu membuat class AlarmReceiver
package com.example.implicitapp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.widget.Toast;
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm Ringing", Toast.LENGTH_SHORT).show();
MediaPlayer player = MediaPlayer.create(context, R.raw.alarm);
player.start();
}
}
dan terakhir kita buat class MainActivity
package com.example.implicitapp;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.btn_audio_manager)
Button btnAudioManager;
@BindView(R.id.btn_notification)
Button btnNotification;
@BindView(R.id.btn_wifi)
Button btnWifi;
@BindView(R.id.btn_email)
Button btnEmail;
@BindView(R.id.btn_sms)
Button btnSms;
@BindView(R.id.btn_alarm)
Button btnAlarm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@OnClick({R.id.btn_audio_manager, R.id.btn_notification, R.id.btn_wifi, R.id.btn_email, R.id.btn_sms, R.id.btn_alarm})
public void onViewClicked(View view){
switch (view.getId()){
case R.id.btn_audio_manager:
startActivity(new Intent(this, AudioManager.class));
break;
case R.id.btn_notification:
showNotification();
break;
case R.id.btn_email:
startActivity(new Intent(this, EmailActivity.class));
break;
case R.id.btn_wifi:
startActivity(new Intent(this, WifiActivity.class));
break;
case R.id.btn_sms:
startActivity(new Intent(this, SmsActivity.class));
break;
case R.id.btn_alarm:
startActivity(new Intent(this, AlarmActivity.class));
break;
}
}
private void showNotification() {
int NOTIFICATION_ID = 1;
String CHANNEL_ID = "channel_1";
String CHANNEL_NAME = "notif Channel";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://idn.sch.id"));
PendingIntent pendingIntent = PendingIntent.getActivity(this, 2, intent, 0);
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentIntent(pendingIntent)
.setSmallIcon(R.mipmap.ic_launcher_round)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.setContentTitle("Simply Notification")
.setContentText("Test Notification")
.setSubText("Sub Text")
.setAutoCancel(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
if (notificationManager != null){
notificationManager.createNotificationChannel(notificationChannel);
}
}
Notification notification = notificationBuilder.build();
if (notificationManager != null){
notificationManager.notify(NOTIFICATION_ID, notification);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 2){
if (resultCode == RESULT_OK){
Toast.makeText(this, "Click Notification", Toast.LENGTH_SHORT).show();
Log.d("requestcode", "OK");
}
}
}
}
lalu di manifest, kita buat permission
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.implicitapp">
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".AlarmActivity"></activity>
<activity android:name=".SmsActivity" />
<activity android:name=".EmailActivity" />
<activity android:name=".WifiActivity" />
<activity android:name=".AudioManager" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".AlarmReceiver" />
</application>
</manifest>
dan selesai...
alhamdulillah selesai... selamat mencoba...
Komentar
Posting Komentar