Develop an application to display Google map with user's current location.
act ivity_main.xml @Override
<?xml version="1.0" encoding="utf-8"?> protected void onCreate(Bundle savedInstanceState) {
<RelativeLayout xmlns:android="http://schemas.android.com/ super.onCreate(savedInstanceState);
apk/res/android" setContentView(R.layout.activity_main);
xmlns:app="http://schemas.android.com/
apk/res-auto" fusedLocationProviderClient =
xmlns:tools="http://schemas.android.com/tools" LocationServices.getFusedLocationProviderClient(this);
android:layout_width="match_parent" fetchLastLocation();
android:layout_height="match_parent" } private void fetchLastLocation() {
tools:context=".MainActivity">
<fragment if (ActivityCompat.checkSelfPermission(this,
android:layout_width="match_parent" Manifest.permission.ACCESS_FINE_LOCATION) !=
android:layout_height="match_parent" PackageManager.PERMISSION_GRANTED &&
android:id="@+id/google_map" ActivityCompat.checkSelfPermission(this,
android:name="com.google.android.gms.maps. Manifest.permission.ACCESS_COARSE_LOCATION) !=
SupportMapFragment" /> PackageManager.PERMISSION_GRANTED) {
</RelativeLayout> ActivityCompat.requestPermissions(this,new
String[]{Manifest.permission.ACCESS_FINE_LOCATION},
REQUEST_CODE);
MainActivity.Java return;
}
package com.example.location; Task<Location> task =
import androidx.annotation.NonNull; fusedLocationProviderClient.getLastLocation();
import androidx.appcompat.app.AppCompatActivity; task.addOnSuccessListener(new
import androidx.core.app.ActivityCompat; OnSuccessListener<Location>() {
import androidx.fragment.app.FragmentActivity; @Override
import android.Manifest; public void onSuccess(Location location) {
import android.content.pm.PackageManager; if(location!=null)
import android.location.Location; {
import android.os.Bundle; currentlocation=location;
import android.widget.Toast;
mport com.google.android.gms.location.FusedLocationProviderClient; Toast.makeText(getApplicationContext(),currentlocation.
import com.google.android.gms.location.LocationServices; getLatitude()+""+current
import com.google.android.gms.maps.CameraUpdateFactory; location.getLongitude(), Toast.LENGTH_SHORT).show();
import com.google.android.gms.maps.GoogleMap; SupportMapFragment supportMapFragment =
import com.google.android.gms.maps.OnMapReadyCallback; (SupportMapFragment)getSupportFragmentManager().
import com.google.android.gms.maps.SupportMapFragment; findFragmentById(R.id.go
import com.google.android.gms.maps.model.LatLng; ogle_map);
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.tasks.OnSuccessListener; supportMapFragment.getMapAsync(MainActivity.this);
import com.google.android.gms.tasks.Task; }
public class MainActivity extends FragmentActivity implements }
OnMapReadyCallback });
{ }
Location currentlocation; FusedLocationProviderClient
fusedLocationProviderClient;
private static final int REQUEST_CODE = 101;
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
LatLng latLng=new
LatLng(currentlocation.getLatitude(),currentlocation.getLongitude());
MarkerOptions markerOptions=new MarkerOptions().position(latLng)
.title("I am Here");
googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,5));
googleMap.addMarker(markerOptions);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[]
permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_CODE:
if (grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
fetchLastLocation();
}
break;
}
}
}
Develop an android application for taking student feedback with database connectivity.
(NEXT PAGE)…
public class MainActivity extends AppCompatActivity {
private EditText txtMobile;
private EditText txtMessage;
private Button btnSms;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtMobile = (EditText)findViewById(R.id.mblTxt);
txtMessage = (EditText)findViewById(R.id.msgTxt);
btnSms = (Button)findViewById(R.id.btnSend);
btnSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
SmsManager smgr = SmsManager.getDefault();
smgr.sendTextMessage(txtMobile.getText().toString(),null,
txtMessage.getText().toString(),null,null);
Toast.makeText(MainActivity.this, "SMS Sent
Successfully",
Toast.LENGTH_SHORT).show();
}
catch (Exception e){
Toast.makeText(MainActivity.this, "SMS Failed
to Send, Please try again",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
public class MainActivity extends AppCompatActivity {
SmsReceiver sms= new SmsReceiver();
EditText et1,et2;
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1=findViewById(R.id.etPhno);
et2=findViewById(R.id.etmsg);
b1=findViewById(R.id.btnSms);
if(ContextCompat.checkSelfPermission(MainActivity.this
,Manifest.permission.SEN
D_SMS)!=
PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(MainActivity.this,new
String[]{Manifest.permission.SEND_SMS},100);
}
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String phno= et1.getText().toString();
String msg=et2.getText().toString();
SmsManager smsManager= SmsManager.getDefault();
smsManager.sendTextMessage(phno,null,msg,null,null);
Toast.makeText(MainActivity.this,"Sms sent successfully",
Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
Toast.makeText(MainActivity.this,"Sms failed to send...
try again",
Toast.LENGTH_LONG).show();
}
}
});
}
@Override
protected void onStart() {
super.onStart();
IntentFilter filter=new
IntentFilter("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(sms,filter);
}
@Override
protected void onStop() {
super.onStop();
unregisterReceiver(sms);
Develop an application to display a Google Map. (Write JAVA & Manifest file)
AndroidManifest.xml code: </intent-filter>
<?xml version="1.0" encoding="utf-8"?> </activity>
<manifest </application>
xmlns:android="http://schemas.android.com/ </manifest>
apk/res/android" code of MapsActivity.java :
package="example.com.mapexample"> package example.com.mapexample;
<!--
The ACCESS_COARSE/FINE_LOCATION import
permissions are not requir android.support.v4.app.FragmentActivity;
ed to use import android.os.Bundle;
Google Maps Android API v2, but you must import com.google.android.gms.maps.Camera
specify either coarse or fine UpdateFactory;
import
location permissions for the 'MyLocation' com.google.android.gms.maps.GoogleMap;
functionality. import com.google.android.gms.maps.
--> OnMapReadyCallback;
<uses import com.google.android.gms.maps
permission android:name="android.permission. .SupportMapFragment;
ACCESS_FINE_ import com.google.android.gms
LOCATION .maps.model.LatLng;
" /> import com.google.android.gms.maps.
<uses model.MarkerOptions;
permission
android:name="android.permission.ACCESS_ public class MapsActivity extends
COARSE_LOCAT FragmentActivity implements OnMapReadyC
ION" /> allback{
<uses-permission private GoogleMap mMap;
android:name="android.permission.INTERNET" />
<application @Override
android:allowBackup="true" protected void onCreate(Bundle
android:icon="@mipmap/ic_launcher" savedInstanceState) {
android:label="@string/app_name" super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" // Obtain the SupportMapFragment and get
android:theme="@style/AppTheme"> notified when the map is ready to be used
.
<meta-data
SupportMapFragment mapFragment =
android:name="com.google.android.geo.API_KEY" (SupportMapFragment) getSupportFragment
android:value="@string/google_maps_key" /> Manager()
.findFragmentById(R.id.map);
<activity mapFragment.getMapAsync(this);
android:name=".MapsActivity" }
android:label="@string/title_activity_maps"> @Override
<intent-filter> public void onMapReady(GoogleMap
<action googleMap) {
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER"
/>
Q)Write a program to find the direction from user's current location to MSBTE,
Bandra. (Write only Java and manitest file).
MainActivity.java private Polyline currentPolyline;
private MapFragment mapFragment;
mport android.Manifest; private boolean isFirstTime = true;
mport android.content.DialogInterface;
mport android.content.Intent; //variables for current location
mport android.content.pm.PackageManager; private static final String TAG = "MainActivity";
mport android.location.Location;
mport android.net.Uri; private TextView tvLocation;
mport android.provider.Settings; private GoogleApiClient mGoogleApiClient;
mport android.support.v4.app.ActivityCompat; private Location mLocation;
mport android.support.v7.app.AlertDialog; private LocationRequest mLocationRequest;
mport android.support.v7.app.AppCompatActivity; private com.google.android.gms.location.LocationListener
mport android.os.Bundle; listener;
mport android.util.Log; private long UPDATE_INTERVAL = 2 * 1000; /* 10 secs *
mport android.widget.Button;
mport android.widget.TextView; private long FASTEST_INTERVAL = 2000; /* 2 sec */
mport android.widget.Toast;
mport com.google.android.gms.common.ConnectionResult; @Override
mport com.google.android.gms.common.api.GoogleApiClient; protected void onCreate(Bundle savedInstanceState) {
mport com.google.android.gms.location.LocationRequest; super.onCreate(savedInstanceState);
mport com.google.android.gms.location.LocationServices; setContentView(R.layout.activity_main);
mport com.google.android.gms.maps.CameraUpdateFactory;
mport com.google.android.gms.maps.GoogleMap; //code for getting current location
mport com.google.android.gms.maps.MapFragment; requestMultiplePermissions();
mport com.google.android.gms.maps.OnMapReadyCallback; tvLocation = (TextView) findViewById((R.id.tv));
mport com.google.android.gms.maps.model.CameraPosition; mGoogleApiClient = new GoogleApiClient.Builder(this)
mport com.google.android.gms.maps.model.LatLng; .addConnectionCallbacks(this)
mport com.google.android.gms.maps.model.MarkerOptions; .addOnConnectionFailedListener(this)
mport com.google.android.gms.maps.model.Polyline; .addApi(LocationServices.API)
mport com.google.android.gms.maps.model.PolylineOptions; .build();
mport com.karumi.dexter.Dexter; }
mport com.karumi.dexter.MultiplePermissionsReport;
mport com.karumi.dexter.PermissionToken; //code for drawing route
mport com.karumi.dexter.listener.DexterError; @Override
mport com.karumi.dexter.listener.PermissionRequest; public void onMapReady(GoogleMap googleMap) {
mport mMap = googleMap;
com.karumi.dexter.listener.PermissionRequestErrorListener; mMap.clear();
mport Log.d("mylog", "Added Markers");
com.karumi.dexter.listener.multi.MultiplePermissionsListener; mMap.addMarker(place1);
mport java.util.List; mMap.addMarker(place2);
ublic class MainActivity extends AppCompatActivity CameraPosition googlePlex = CameraPosition.builder()
implements .target(new LatLng(22.7739,71.6673))
oogleApiClient.ConnectionCallbacks, .zoom(7)
GoogleApiClient.OnConnectionFailedListener, .bearing(0)
om.google.android.gms.location.LocationListener , .tilt(45)
OnMapReadyCallback, .build();
askLoadedCallback{
//variables for map and route private void requestMultiplePermissions(){
Dexter.withActivity(this)
private GoogleMap mMap; .withPermissions(
private MarkerOptions place1, place2; Manifest.permission.ACCESS_FINE_LOCATION,
Button getDirection; Manifest.permission.ACCESS_COARSE_LOCATION )
.withListener(new MultiplePermissionsListener() {
private String getUrl(LatLng origin, LatLng dest, String @Override
directionMode) { public void onPermissionsChecked(MultiplePermissionsR
eport report) {
mMap.animateCamera(CameraUpdateFactory // check if all permissions are granted
.newCameraPosition(googlePlex), 5000, if (report.areAllPermissionsGranted()) {
null); Toast.makeText(getApplicationContext(), "All permissions
} are granted by
user!", Toast.LENGTH_SHORT).show();
// Origin of route }
String str_origin = "origin=" + origin.latitude + "," +
origin.longitude; Double.toString(location.getLongitude());
// Destination of route
String str_dest = "destination=" + dest.latitude + "," + tvLocation.setText(String.valueOf(location.getLatitude()
dest.longitude; +"
// Mode "+String.valueOf(location.getLongitude())));
String mode = "mode=" + directionMode; Toast.makeText(this, msg, Toast.LENGTH_SHORT
// Building the parameters to the web service ).show();
String parameters = str_origin + "&" + str_dest + "&" +
mode; if(isFirstTime){
// Output format //code to draw path on map
tring output = "json";
getDirection = findViewById(R.id.btnGetDirection);
getDirection.setOnClickListener(new View.OnClickL
// Building the url to the web service istener() {
String url = @Override
"https://maps.googleapis.com/maps/api/directions/" + public void onClick(View view) {
output + "?" + new FetchURL(MainActivity.this).execute(getUrl(place1.
parameters + "&key=" + getPosition(),
getString(R.string.google_maps_key); place2.getPosition(), "driving"), "driving");
return url; }
} });
@Override place1 = new MarkerOptions().position(new
public void onTaskDone(Object... values) { LatLng(location.getLatitude(),
if (currentPolyline != null) location.getLongitude())).title("Location 1");
currentPolyline.remove(); place2 = new MarkerOptions().position(new
currentPolyline = LatLng(19.021824,72.8662016)).title("MSBTE");
mMap.addPolyline((PolylineOptions) values[0]); mapFragment = (MapFragment)
} getFragmentManager().findFragmentById(R.i
d.mapNearBy);
//runtime permission method mapFragment.getMapAsync(this);
isFirstTime = false;
} }}