Mad Unit Iv
Mad Unit Iv
Definition:
A Content Provider is a component in Android that enables secure sharing of structured data
between applications. It allows an app to store, retrieve, update, and delete data while
maintaining security and permissions.
1. Data Storage → The provider stores data in SQLite, Room, or another storage
mechanism.
2. URI (Uniform Resource Identifier) → Other apps use a URI to request data.
3. Permissions & Security → The provider ensures that only authorized apps can access
data.
4. CRUD Operations → Other apps can use query, insert, update, and delete to
manipulate data.
Creating a Content Provider (Step-by-Step)
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String
sortOrder) {
return null; // Fetch data from the database
}
@Override
public Uri insert(Uri uri, ContentValues values) {
return null; // Insert data into the database
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
return 0; // Update data in the database
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0; // Delete data from the database
}
@Override
public String getType(Uri uri) {
return null; // Return the MIME type of data
}
}
<provider
android:name=".MyContentProvider"
android:authorities="com.example.provider"
android:exported="true"
android:grantUriPermissions="true" />
Important:
A URI (Uniform Resource Identifier) identifies the data inside a Content Provider.
The format is:
content://<authority>/<path>/<id>
SMS Messaging in Android
SMS (Short Message Service) messaging in Android allows applications to send, receive, and
manage SMS messages using the Android Telephony API.
SmsManager allows sending SMS messages without opening the default SMS app.
This method opens the default messaging app with a pre-filled message.
Example: Sending SMS using an Intent
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("sms:+1234567890"));
intent.putExtra("sms_body", "Hello, this is a test message!");
startActivity(intent);
In Android, you can send emails from your app using different methods. The most common
approaches are:
The easiest and most recommended way to send an email in Android is by using an Intent. This
method opens the default email app with a pre-filled email.
try {
startActivity(Intent.createChooser(intent, "Choose an Email Client"));
} catch (android.content.ActivityNotFoundException e) {
Toast.makeText(this, "No email client installed.", Toast.LENGTH_SHORT).show();
}
How It Works:
✅ Pros:
Android provides Google Maps API to integrate interactive maps into your app. You can use
Google Maps to display locations, get directions, and customize map styles.
dependencies {
implementation 'com.google.android.gms:play-services-maps:18.1.0'
implementation 'com.google.android.gms:play-services-location:21.0.1'
}
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
import androidx.fragment.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]
{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
return;
}
mMap.setMyLocationEnabled(true);
}
Step 2: Handle Permission Request Result
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1 && grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) ==
PackageManager.PERMISSION_GRANTED) {
mMap.setMyLocationEnabled(true);
}
}
}