Skip to main content

Content Provider in Android (Part 1)


 Today, I will introduce about Content Provider in Android.

What's is Content Provider?

- Content Provider store and retrieve data. Content Provider will make data accessible to all applications. This is unique way to share data across applications.
- Android provide a number of Content Provider for common data types (audio, video, images, bookmarks, contact,...). Query these providers for the data contained. (although, for some, must acquire the proper permission to read/write data).

There're 2 ways to make data public:

- Create your own Content Provider.
- Add your data to existing Content Provider.

Example 1: Displays Bookmark of System Browser.

- Permission is required to access Browser Content. Declare 2 below lines in AndroidManifest.xml file:

<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS">
<uses-permission android:name="com.android.broswer.permission.WRITE_HISTORY_BOOKMARKS"> 

 - Retrieve data and display them in List view. Create a ListActivity:

package com.jbohn.contentprovider;

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Browser;
import android.widget.SimpleCursorAdapter;

public class ContentProviderBrowserActivity extends ListActivity
{

 @Override
 public void onCreate( Bundle savedInstanceState )
 {
  super.onCreate( savedInstanceState );
  setContentView( R.layout.activitybrowser );
  
  //Projection for the interesting columns of a Bookmark
  String[] projection = new String[] { Browser.BookmarkColumns._ID,
    Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL };
  
  //Do query to retrieve data(bookmarks) from Browser
  Cursor cursor = managedQuery( android.provider.Browser.BOOKMARKS_URI,
    projection, null, null, null );
  
  //Put data to a List Activity
  String[] displayFields = new String[] { Browser.BookmarkColumns.TITLE,
    Browser.BookmarkColumns.URL };
  int[] displayViews = new int[] { android.R.id.text1, android.R.id.text2 };
    
  setListAdapter( new SimpleCursorAdapter( this,
    android.R.layout.simple_list_item_2, cursor, displayFields,
    displayViews ) );
 }
}
Tobe continue... 
(http://jbohn.blogspot.com) 

Comments

Popular posts from this blog

How to Install SQL Server on MacOS with docker

 I'm writing a small tut for who need to install SQL Server on macOS using docker Step 1: Download the SQL Server Image sudo docker pull mcr.microsoft.com/mssql/server:2019-latest Step 2: Launch the SQL Server Image in Docker docker run -d --name example_sql_server -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Pass.word-123' -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest Step 3: Check the SQL Server Docker Container docker ps -a Step 4: Install SQL Server Command-Line Tool sudo npm install -g sql-cli Step 5: Connect to SQL Server  5.1 Using Command mssql -u sa -p Pass.word-123 5.2: Using VSCode to connect to sql server Using the extension SQL Server (mssql)

What is API Gateway?

  What does API gateway do? The diagram below shows the detail. Step 1 - The client sends an HTTP request to the API gateway. Step 2 - The API gateway parses and validates the attributes in the HTTP request. Step 3 - The API gateway performs allow-list/deny-list checks. Step 4 - The API gateway talks to an identity provider for authentication and authorization. Step 5 - The rate limiting rules are applied to the request. If it is over the limit, the request is rejected. Steps 6 and 7 - Now that the request has passed basic checks, the API gateway finds the relevant service to route to by path matching. Step 8 - The API gateway transforms the request into the appropriate protocol and sends it to backend microservices. Steps 9-12 : The API gateway can handle errors properly, and deals with faults if the error takes a longer time to recover (circuit break). It can also leverage ELK (Elastic-Logstash-Kibana) stack for logging and monitoring. We sometimes cache data in the API gatew...