Exp 5,14 Mad

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 85

Absolute Layout

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

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="fill_parent"

android:layout_height="fill_parent"

tools:context=".MainActivity">

<!--Setting up TextViews-->

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="100px"

android:layout_y="300px" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="120px"

android:layout_y="350px" />

</AbsoluteLayout>

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

TextView heading, subHeading;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Referencing the TextViews

heading = (TextView) findViewById(R.id.heading);

subHeading = (TextView) findViewById(R.id.subHeading);

// Setting text dynamically

heading.setText("Computer Science Portal");

subHeading.setText("GeeksForGeeks");

}}
List view

<?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"

tools:context=".MainActivity">

<ListView

android:id="@+id/list"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

</LinearLayout>

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

public class MainActivity extends AppCompatActivity {

ListView l;

String tutorials[]

= { "Algorithms", "Data Structures",

"Languages", "Interview Corner",

"GATE", "ISRO CS",

"UGC NET CS", "CS Subjects",

"Web Technologies" };
@Override

protected void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

l = findViewById(R.id.list);

ArrayAdapter<String> arr;

arr

= new ArrayAdapter<String>(

this,

R.layout.support_simple_spinner_dropdown_item,

tutorials);

l.setAdapter(arr);

}}
Imageview

<?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">

<ImageView

android:id="@+id/GfG_full_logo"

android:layout_width="0dp"

android:layout_height="wrap_content"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.078"

app:srcCompat="@drawable/full_logo" />

<ImageView

android:id="@+id/GfG_logo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/GfG_full_logo"

app:srcCompat="@drawable/logo" />

</androidx.constraintlayout.widget.ConstraintLayout>
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}
Scroll view

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.test.scrollviews.MainActivity">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceMedium"

android:text="Vertical ScrollView example"

android:id="@+id/textView"

android:layout_gravity="center_horizontal"

android:layout_centerHorizontal="true"

android:layout_alignParentTop="true" />

<ScrollView android:layout_marginTop="30dp"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/scrollView">

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >
<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 1" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 2" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 3" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 4" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 5" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 6" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 7" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"
android:text="Button 8" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 9" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 10" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 11" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 12" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 13" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 14" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 15" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"
android:text="Button 16" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 17" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 18" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 19" />

<Button

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Button 20" />

</LinearLayout>

</ScrollView>

</RelativeLayout>

package com.example.test.scrollviews;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
}

}
Auto complete

MainActivity.java

package example.javatpoint.com.autocompletetextview;  

import android.graphics.Color;  

import android.support.v7.app.AppCompatActivity;  

import android.os.Bundle;  

import android.widget.ArrayAdapter;  

import android.widget.AutoCompleteTextView;  

public class MainActivity extends AppCompatActivity {  

    String[] language ={"C","C++","Java",".NET","iPhone","Android","ASP.NET","PHP"};  
    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_main);  

        //Creating the instance of ArrayAdapter containing list of language names  

        ArrayAdapter<String> adapter = new ArrayAdapter<String>  

                (this,android.R.layout.select_dialog_item,language);  

        //Getting the instance of AutoCompleteTextView  

        AutoCompleteTextView actv =  (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);

        actv.setThreshold(1);//will start working from first character  

        actv.setAdapter(adapter);//setting the adapter data into the AutoCompleteTextView  

        actv.setTextColor(Color.RED);  

    }  

}  

File: activity_main.xml
<?xml version="1.0" encoding="utf-8"?>  

<android.support.constraint.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="example.javatpoint.com.autocompletetextview.MainActivity">  

    <TextView  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:text="What is your favourite programming language?"  

        app:layout_constraintBottom_toBottomOf="parent"  

        app:layout_constraintLeft_toLeftOf="parent"  

        app:layout_constraintRight_toRightOf="parent"  

        app:layout_constraintTop_toTopOf="parent"  

        app:layout_constraintVertical_bias="0.032" />  
    <AutoCompleteTextView  

        android:id="@+id/autoCompleteTextView"  

        android:layout_width="200dp"  

        android:layout_height="wrap_content"  

        android:layout_marginLeft="92dp"  

        android:layout_marginTop="144dp"  

        android:text=""  

        app:layout_constraintStart_toStartOf="parent"  

        app:layout_constraintTop_toTopOf="parent" />  

  

</android.support.constraint.ConstraintLayout>  
Frame layout

package com.example.demo;

import android.os.Bundle;

import android.app.Activity;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<ImageView

android:src="@drawable/ic_launcher"

android:scaleType="fitCenter"

android:layout_height="250px"

android:layout_width="250px"/>

<TextView

android:text="Frame Demo"

android:textSize="30px"

android:textStyle="bold"

android:layout_height="fill_parent"

android:layout_width="fill_parent"

android:gravity="center"/>

</FrameLayout>
RELATIVE LAYOUT

package com.example.demo;

import android.os.Bundle;

import android.app.Activity;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

activity_main.xml file −

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:paddingLeft="16dp"

android:paddingRight="16dp" >

<EditText

android:id="@+id/name"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:hint="@string/reminder" />

<LinearLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_alignParentStart="true"

android:layout_below="@+id/name"

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="New Button"
android:id="@+id/button" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="New Button"

android:id="@+id/button2" />

</LinearLayout>

</RelativeLayout>
TABLE LAYOUT

package com.example.demo;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

 res/layout/activity_main.xml file −

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TableRow

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:text="Time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1" />

<TextClock

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textClock"

android:layout_column="2" />

</TableRow>

<TableRow>
<TextView

android:text="First Name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1" />

<EditText

android:width="200px"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</TableRow>

<TableRow>

<TextView

android:text="Last Name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1" />

<EditText

android:width="100px"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</TableRow>

<TableRow

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<RatingBar

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/ratingBar"

android:layout_column="2" />

</TableRow>

<TableRow

android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

<TableRow

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Submit"

android:id="@+id/button"

android:layout_column="2" />

</TableRow>

</TableLayout>
Broadcast receiver

package com.example.tutorialspoint7.myapplication;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

public class MainActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// broadcast a custom intent.

public void broadcastIntent(View view){

Intent intent = new Intent();

intent.setAction("com.tutorialspoint.CUSTOM_INTENT"); sendBroadcast(intent);

Following is the content of MyReceiver.java:

package com.example.tutorialspoint7.myapplication;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.widget.Toast;

/**

* Created by TutorialsPoint7 on 8/23/2016.

*/

public class MyReceiver extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();


}

Following will the modified content of AndroidManifest.xml file. Here we have added <receiver.../> tag to include
our service:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.tutorialspoint7.myapplication">

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<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="MyReceiver">

<intent-filter>

<action android:name="com.tutorialspoint.CUSTOM_INTENT">

</action>

</intent-filter>

</receiver>

</application>
</manifest>

Following will be the content of res/layout/activity_main.xml file to include a button to broadcast our custom intent

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin"

tools:context=".MainActivity">

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Example of Broadcast"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:textSize="30dp" />

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tutorials point "

android:textColor="#ff87ff09"

android:textSize="30dp"

android:layout_above="@+id/imageButton"

android:layout_centerHorizontal="true"

android:layout_marginBottom="40dp" />
<ImageButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/imageButton"

android:src="@drawable/abc"

android:layout_centerVertical="true"

android:layout_centerHorizontal="true" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/button2"

android:text="Broadcast Intent"

android:onClick="broadcastIntent"

android:layout_below="@+id/imageButton"

android:layout_centerHorizontal="true" />

</RelativeLayout>
Services

File: activity_main.xml

<?xml version="1.0" encoding="utf-8"?>  

<RelativeLayout 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="example.javatpoint.com.androidservice.MainActivity">  

  

  

    <Button  

        android:id="@+id/buttonStart"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_alignParentTop="true"  

        android:layout_centerHorizontal="true"  

        android:layout_marginTop="74dp"  

        android:text="Start Service" />  

  

    <Button  

        android:id="@+id/buttonStop"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_centerHorizontal="true"  

        android:layout_centerVertical="true"  

        android:text="Stop Service" />  

  

    <Button  

        android:id="@+id/buttonNext"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  
        android:layout_alignParentBottom="true"  

        android:layout_centerHorizontal="true"  

        android:layout_marginBottom="63dp"  

        android:text="Next Page" />  

</RelativeLayout>  

activity_next.xml

It is the layout file of next activity.

File: activity_next.xml

It contains only one textview displaying the message Next Page

<?xml version="1.0" encoding="utf-8"?>  

<android.support.constraint.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="example.javatpoint.com.androidservice.NextPage">  

  

    <TextView  

        android:id="@+id/textView"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_marginEnd="8dp"  

        android:layout_marginStart="8dp"  

        android:layout_marginTop="200dp"  

        android:text="Next Page"  

        app:layout_constraintEnd_toEndOf="parent"  

        app:layout_constraintStart_toStartOf="parent"  

        app:layout_constraintTop_toTopOf="parent" />  

</android.support.constraint.ConstraintLayout>  
Service class

Now create the service implemenation class by inheriting the Service class and overridding its callback methods.

File: MyService.java

package example.javatpoint.com.androidservice;  

  

import android.app.Service;  

import android.content.Intent;  

import android.media.MediaPlayer;  

import android.os.IBinder;  

import android.support.annotation.Nullable;  

import android.widget.Toast;  

  

public class MyService extends Service {  

    MediaPlayer myPlayer;  

    @Nullable  

    @Override  

    public IBinder onBind(Intent intent) {  

        return null;  

    }  

    @Override  

    public void onCreate() {  

        Toast.makeText(this, "Service Created", Toast.LENGTH_LONG).show();  

  

        myPlayer = MediaPlayer.create(this, R.raw.sun);  

        myPlayer.setLooping(false); // Set looping  

    }  

    @Override  

    public void onStart(Intent intent, int startid) {  

        Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();  

        myPlayer.start();  

    }  

    @Override  
    public void onDestroy() {  

        Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();  

        myPlayer.stop();  

    }  

}  

Activity class

Now create the MainActivity class to perform event handling. Here, we are writing the code to start and stop
service. Additionally, calling the second activity on buttonNext.

File: MainActivity.java

package example.javatpoint.com.androidservice; 

import android.content.Intent;  

import android.support.v7.app.AppCompatActivity;  

import android.os.Bundle;  

import android.view.View;  

import android.widget.Button;  

  

public class MainActivity extends AppCompatActivity implements View.OnClickListener{  

    Button buttonStart, buttonStop,buttonNext;  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_main);  

  

        buttonStart = findViewById(R.id.buttonStart);  

        buttonStop = findViewById(R.id.buttonStop);  

        buttonNext =  findViewById(R.id.buttonNext);  

  

        buttonStart.setOnClickListener(this);  

        buttonStop.setOnClickListener(this);  

        buttonNext.setOnClickListener(this);  

  
  

    }  

    public void onClick(View src) {  

        switch (src.getId()) {  

            case R.id.buttonStart:  

  

                startService(new Intent(this, MyService.class));  

                break;  

            case R.id.buttonStop:  

                stopService(new Intent(this, MyService.class));  

                break;  

            case R.id.buttonNext:  

                Intent intent=new Intent(this,NextPage.class);  

                startActivity(intent);  

                break;  

        }  

    }  

}  

NextPage class

Now, create another activity.

File: NextPage.java

package example.javatpoint.com.androidservice;  

  

import android.support.v7.app.AppCompatActivity;  

import android.os.Bundle;  

  

public class NextPage extends AppCompatActivity {  

  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_next);  

    }  

}  

Declare the Service in the AndroidManifest.xml file

Finally, declare the service in the manifest file.

File: AndroidManifest.xml

Let's see the complete AndroidManifest.xml file

<?xml version="1.0" encoding="utf-8"?>  

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  

    package="example.javatpoint.com.androidservice">  

  

    <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=".MainActivity">  

            <intent-filter>  

                <action android:name="android.intent.action.MAIN" />  

  

                <category android:name="android.intent.category.LAUNCHER" />  

            </intent-filter>  

        </activity>  

        <activity android:name=".NextPage"></activity>  

        <service  

            android:name=".MyService"  

            android:enabled="true" />  

    </application>  

  
</manifest>  
Implicit intent

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.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">

<!-- add an edittext to input text -->

<EditText

android:id="@+id/editText1"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="136dp"

android:ems="10"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

<!-- add a button for click -->

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/editText1"

android:layout_centerHorizontal="true"

android:layout_marginTop="49dp"

android:layout_marginEnd="132dp"

android:text="Click"
app:layout_constraintEnd_toEndOf="@+id/editText1"

app:layout_constraintTop_toBottomOf="@+id/editText1" />

</android.support.constraint.ConstraintLayout>

package org.geeksforgeeks.implicitIntent_example;

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Bind the components to their respective objects

// by assigning their IDs

// with the help of findViewById() method

final EditText editText1 = (EditText)findViewById(R.id.editText1);

Button button = (Button)findViewById(R.id.button1);

// implementation of onClick event for Implicit Intent

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v)

// performing webpage open action

String url = editText1.getText().toString();

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

startActivity(intent);

} });
}}
Explicit Intent

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.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="org.geeksforgeeks.explicit_intent.MainActivity">

<!-- add a button to move to next activity -->

<Button

android:id="@+id/Button01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/TextView01"

android:layout_marginTop="209dp"

android:onClick="onClick"

android:text="Go To Other Activity"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

tools:ignore="OnClick" />

<!-- add a TextView to write some text on activity -->

<TextView

android:id="@+id/TextView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/Button01"
android:layout_alignParentTop="true"

android:layout_marginTop="44dp"

android:minHeight="60dip"

android:text="This is First Activity"

android:textSize="20sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

package org.geeksforgeeks.explicit_intent;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

// Defining the object for button

Button button1;

@Override

public void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Bind the components to their respective objects

// by assigning their IDs

// with the help of findViewById() method


button1 = (Button)findViewById(R.id.Button01);

button1.setOnClickListener(new OnClickListener() {

public void onClick(View view)

// Creating explicit intent

Intent i = new Intent(getApplicationContext(),

ActivityTwo.class);

startActivity(i);

});

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.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="org.geeksforgeeks.explicit_intent.ActivityTwo">

<!-- add a button for moving to home activity -->

<Button

android:id="@+id/Button01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/TextView01"

android:layout_alignParentLeft="true"

android:layout_marginBottom="220dp"

android:onClick="onClick"

android:text="Go to Home Activity"


app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.533"

app:layout_constraintStart_toStartOf="parent"

tools:ignore="OnClick" />

<!-- add a TextView to write some text on activity -->

<TextView

android:id="@+id/TextView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/Button01"

android:layout_alignParentTop="true"

android:layout_margin="71dp"

android:layout_marginTop="144dp"

android:layout_marginEnd="88dp"

android:layout_marginRight="88dp"

android:minHeight="60dip"

android:text="This is Second Activity"

android:textSize="20sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Content Provider

package com.example.MyApplication;

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.ContentValues;

import android.content.CursorLoader;

import android.database.Cursor;

import android.view.Menu;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

public void onClickAddName(View view) {

// Add a new student record

ContentValues values = new ContentValues();

values.put(StudentsProvider.NAME,

((EditText)findViewById(R.id.editText2)).getText().toString());

values.put(StudentsProvider.GRADE,

((EditText)findViewById(R.id.editText3)).getText().toString());

Uri uri = getContentResolver().insert(

StudentsProvider.CONTENT_URI, values);

Toast.makeText(getBaseContext(),

uri.toString(), Toast.LENGTH_LONG).show();

public void onClickRetrieveStudents(View view) {

// Retrieve student records


String URL = "content://com.example.MyApplication.StudentsProvider";

Uri students = Uri.parse(URL);

Cursor c = managedQuery(students, null, null, null, "name");

if (c.moveToFirst()) {

do{

Toast.makeText(this,

c.getString(c.getColumnIndex(StudentsProvider._ID)) +

", " + c.getString(c.getColumnIndex( StudentsProvider.NAME)) +

", " + c.getString(c.getColumnIndex( StudentsProvider.GRADE)),

Toast.LENGTH_SHORT).show();

} while (c.moveToNext());

Create new file StudentsProvider.java under com.example.MyApplication package and following is the content


of src/com.example.MyApplication/StudentsProvider.java −

package com.example.MyApplication;

import java.util.HashMap;

import android.content.ContentProvider;

import android.content.ContentUris;

import android.content.ContentValues;

import android.content.Context;

import android.content.UriMatcher;

import android.database.Cursor;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.database.sqlite.SQLiteQueryBuilder;

import android.net.Uri;

import android.text.TextUtils;

public class StudentsProvider extends ContentProvider {

static final String PROVIDER_NAME = "com.example.MyApplication.StudentsProvider";


static final String URL = "content://" + PROVIDER_NAME + "/students";

static final Uri CONTENT_URI = Uri.parse(URL);

static final String _ID = "_id";

static final String NAME = "name";

static final String GRADE = "grade";

private static HashMap<String, String> STUDENTS_PROJECTION_MAP

static final int STUDENTS = 1;

static final int STUDENT_ID = 2;

static final UriMatcher uriMatcher;

static{

uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

uriMatcher.addURI(PROVIDER_NAME, "students", STUDENTS);

uriMatcher.addURI(PROVIDER_NAME, "students/#", STUDENT_ID);

/**

* Database specific constant declarations

*/

private SQLiteDatabase db;

static final String DATABASE_NAME = "College";

static final String STUDENTS_TABLE_NAME = "students";

static final int DATABASE_VERSION = 1;

static final String CREATE_DB_TABLE =

" CREATE TABLE " + STUDENTS_TABLE_NAME +

" (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +

" name TEXT NOT NULL, " +

" grade TEXT NOT NULL);";

/**

* Helper class that actually creates and manages

* the provider's underlying data repository.


*/

private static class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context){

super(context, DATABASE_NAME, null, DATABASE_VERSION);

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(CREATE_DB_TABLE);

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL("DROP TABLE IF EXISTS " + STUDENTS_TABLE_NAME);

onCreate(db);

@Override

public boolean onCreate() {

Context context = getContext();

DatabaseHelper dbHelper = new DatabaseHelper(context);

/**

* Create a write able database which will trigger its

* creation if it doesn't already exist.

*/

db = dbHelper.getWritableDatabase();

return (db == null)? false:true;


}

@Override

public Uri insert(Uri uri, ContentValues values) {

/**

* Add a new student record

*/

long rowID = db.insert( STUDENTS_TABLE_NAME, "", values);

/**

* If record is added successfully

*/

if (rowID > 0) {

Uri _uri = ContentUris.withAppendedId(CONTENT_URI, rowID);

getContext().getContentResolver().notifyChange(_uri, null);

return _uri;

throw new SQLException("Failed to add a record into " + uri);

@Override

public Cursor query(Uri uri, String[] projection,

String selection,String[] selectionArgs, String sortOrder) {

SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

qb.setTables(STUDENTS_TABLE_NAME);

switch (uriMatcher.match(uri)) {

case STUDENTS:

qb.setProjectionMap(STUDENTS_PROJECTION_MAP);

break;
case STUDENT_ID:

qb.appendWhere( _ID + "=" + uri.getPathSegments().get(1));

break;

default:

if (sortOrder == null || sortOrder == ""){

/**

* By default sort on student names

*/

sortOrder = NAME;

Cursor c = qb.query(db, projection, selection,

selectionArgs,null, null, sortOrder);

/**

* register to watch a content URI for changes

*/

c.setNotificationUri(getContext().getContentResolver(), uri);

return c;

@Override

public int delete(Uri uri, String selection, String[] selectionArgs) {

int count = 0;

switch (uriMatcher.match(uri)){

case STUDENTS:

count = db.delete(STUDENTS_TABLE_NAME, selection, selectionArgs);

break;
case STUDENT_ID:

String id = uri.getPathSegments().get(1);

count = db.delete( STUDENTS_TABLE_NAME, _ID + " = " + id +

(!TextUtils.isEmpty(selection) ? "

AND (" + selection + ')' : ""), selectionArgs);

break;

default:

throw new IllegalArgumentException("Unknown URI " + uri);

getContext().getContentResolver().notifyChange(uri, null);

return count;

@Override

public int update(Uri uri, ContentValues values,

String selection, String[] selectionArgs) {

int count = 0;

switch (uriMatcher.match(uri)) {

case STUDENTS:

count = db.update(STUDENTS_TABLE_NAME, values, selection, selectionArgs);

break;

case STUDENT_ID:

count = db.update(STUDENTS_TABLE_NAME, values,

_ID + " = " + uri.getPathSegments().get(1) +

(!TextUtils.isEmpty(selection) ? "

AND (" +selection + ')' : ""), selectionArgs);

break;

default:

throw new IllegalArgumentException("Unknown URI " + uri );

}
getContext().getContentResolver().notifyChange(uri, null);

return count;

@Override

public String getType(Uri uri) {

switch (uriMatcher.match(uri)){

/**

* Get all student records

*/

case STUDENTS:

return "vnd.android.cursor.dir/vnd.example.students";

/**

* Get a particular student

*/

case STUDENT_ID:

return "vnd.android.cursor.item/vnd.example.students";

default:

throw new IllegalArgumentException("Unsupported URI: " + uri);

Following will the modified content of AndroidManifest.xml file. Here we have added <provider.../> tag to include
our content provider:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.MyApplication">

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<activity android:name=".MainActivity">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<provider android:name="StudentsProvider"

android:authorities="com.example.MyApplication.StudentsProvider"/>

</application>

</manifest>

Following will be the content of res/layout/activity_main.xml file−

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.example.MyApplication.MainActivity">

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Content provider"

android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"

android:textSize="30dp" />

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tutorials point "

android:textColor="#ff87ff09"

android:textSize="30dp"

android:layout_below="@+id/textView1"

android:layout_centerHorizontal="true" />

<ImageButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/imageButton"

android:src="@drawable/abc"

android:layout_below="@+id/textView2"

android:layout_centerHorizontal="true" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/button2"

android:text="Add Name"

android:layout_below="@+id/editText3"

android:layout_alignRight="@+id/textView2"

android:layout_alignEnd="@+id/textView2"

android:layout_alignLeft="@+id/textView2"

android:layout_alignStart="@+id/textView2"

android:onClick="onClickAddName"/>
<EditText

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText"

android:layout_below="@+id/imageButton"

android:layout_alignRight="@+id/imageButton"

android:layout_alignEnd="@+id/imageButton" />

<EditText

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText2"

android:layout_alignTop="@+id/editText"

android:layout_alignLeft="@+id/textView1"

android:layout_alignStart="@+id/textView1"

android:layout_alignRight="@+id/textView1"

android:layout_alignEnd="@+id/textView1"

android:hint="Name"

android:textColorHint="@android:color/holo_blue_light" />

<EditText

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText3"

android:layout_below="@+id/editText"

android:layout_alignLeft="@+id/editText2"

android:layout_alignStart="@+id/editText2"

android:layout_alignRight="@+id/editText2"

android:layout_alignEnd="@+id/editText2"

android:hint="Grade"

android:textColorHint="@android:color/holo_blue_bright" />
<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Retrive student"

android:id="@+id/button"

android:layout_below="@+id/button2"

android:layout_alignRight="@+id/editText3"

android:layout_alignEnd="@+id/editText3"

android:layout_alignLeft="@+id/button2"

android:layout_alignStart="@+id/button2"

android:onClick="onClickRetrieveStudents"/>

</RelativeLayout>

Make sure you have following content of res/values/strings.xml file:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">My Application</string>

</resources>;
Services
package com.example.tutorialspoint7.myapplication;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.os.Bundle;

import android.app.Activity;

import android.util.Log;

import android.view.View;

public class MainActivity extends Activity {

String msg = "Android : ";

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.d(msg, "The onCreate() event");

public void startService(View view) {

startService(new Intent(getBaseContext(), MyService.class));

// Method to stop the service

public void stopService(View view) {

stopService(new Intent(getBaseContext(), MyService.class));

}
Following is the content of MyService.java. This file can have implementation of one or more methods associated
with Service based on requirements. For now we are going to implement only two
methods onStartCommand() and onDestroy() −

package com.example.tutorialspoint7.myapplication;

import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.support.annotation.Nullable;

import android.widget.Toast;

/**

* Created by TutorialsPoint7 on 8/23/2016.

*/

public class MyService extends Service {

@Nullable

@Override

public IBinder onBind(Intent intent) {

return null;

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

// Let it continue running until it is stopped.

Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();

return START_STICKY;

@Override

public void onDestroy() {

super.onDestroy();
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();

Following will the modified content of AndroidManifest.xml file. Here we have added <service.../> tag to include
our service −

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.tutorialspoint7.myapplication">

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<activity android:name=".MainActivity">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<service android:name=".MyService" />

</application>

</manifest>

Following will be the content of res/layout/activity_main.xml file to include two buttons −

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Example of services"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:textSize="30dp" />

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tutorials point "

android:textColor="#ff87ff09"

android:textSize="30dp"

android:layout_above="@+id/imageButton"

android:layout_centerHorizontal="true"

android:layout_marginBottom="40dp" />

<ImageButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/imageButton"

android:src="@drawable/abc"

android:layout_centerVertical="true"

android:layout_centerHorizontal="true" />
<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/button2"

android:text="Start Services"

android:onClick="startService"

android:layout_below="@+id/imageButton"

android:layout_centerHorizontal="true" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Stop Services"

android:id="@+id/button"

android:onClick="stopService"

android:layout_below="@+id/button2"

android:layout_alignLeft="@+id/button2"

android:layout_alignStart="@+id/button2"

android:layout_alignRight="@+id/button2"

android:layout_alignEnd="@+id/button2" />

</RelativeLayout>
Sensors

File: activity_main.xml

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"  

    xmlns:tools="http://schemas.android.com/tools"  

    android:layout_width="match_parent"  

    android:layout_height="match_parent"  

    tools:context=".MainActivity" >  

  

    <TextView  

        android:id="@+id/textView1"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_alignParentLeft="true"  

        android:layout_alignParentTop="true"  

        android:layout_marginLeft="92dp"  

        android:layout_marginTop="114dp"  

        android:text="TextView" />  

  

</RelativeLayout>  

Activity class

Let's write the code that prints values of x axis, y axis and z axis.

File: MainActivity.java

package com.example.sensorsimple;  

import android.app.Activity;  

import android.os.Bundle;  

import android.widget.TextView;  

import android.widget.Toast;  

import android.hardware.SensorManager;  

import android.hardware.SensorEventListener;  

import android.hardware.SensorEvent;  

import android.hardware.Sensor;  
import java.util.List;  

public class MainActivity extends Activity {  

    SensorManager sm = null;  

    TextView textView1 = null;  

    List list;  

  

    SensorEventListener sel = new SensorEventListener(){  

        public void onAccuracyChanged(Sensor sensor, int accuracy) {}  

        public void onSensorChanged(SensorEvent event) {  

            float[] values = event.values;  

            textView1.setText("x: "+values[0]+"\ny: "+values[1]+"\nz: "+values[2]);  

        }  

    };  

  

    @Override  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_main);  

  

        /* Get a SensorManager instance */  

        sm = (SensorManager)getSystemService(SENSOR_SERVICE);  

  

        textView1 = (TextView)findViewById(R.id.textView1);  

  

        list = sm.getSensorList(Sensor.TYPE_ACCELEROMETER);  

        if(list.size()>0){  

            sm.registerListener(sel, (Sensor) list.get(0), SensorManager.SENSOR_DELAY_NORMAL);  

        }else{  

            Toast.makeText(getBaseContext(), "Error: No Accelerometer.", Toast.LENGTH_LONG).show();  

        }  

    }  

  
    @Override  

    protected void onStop() {  

        if(list.size()>0){  

          sm.unregisterListener(sel);  

        }  

        super.onStop();  

    }  

}  

Build Camera

package com.example.sairamkrishna.myapplication;

import android.Manifest;

import android.app.Activity;

import android.app.AlertDialog;
import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.content.pm.PackageManager;

import android.net.Uri;

import android.os.Bundle;

import android.provider.Settings;

import android.support.v4.app.ActivityCompat;

import android.support.v4.content.ContextCompat;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

public static final int MY_PERMISSIONS_REQUEST_CAMERA = 100;

public static final String ALLOW_KEY = "ALLOWED";

public static final String CAMERA_PREF = "camera_pref";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED) {

if (getFromPref(this, ALLOW_KEY)) {

showSettingsAlert();

} else if (ContextCompat.checkSelfPermission(this,

Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {

// Should we show an explanation?

if (ActivityCompat.shouldShowRequestPermissionRationale(this,

Manifest.permission.CAMERA)) {

showAlert();

} else {

// No explanation needed, we can request the permission.

ActivityCompat.requestPermissions(this,

new String[]{Manifest.permission.CAMERA},

MY_PERMISSIONS_REQUEST_CAMERA);

} else {

openCamera();

public static void saveToPreferences(Context context, String key, Boolean allowed) {

SharedPreferences myPrefs = context.getSharedPreferences(CAMERA_PREF,

Context.MODE_PRIVATE);

SharedPreferences.Editor prefsEditor = myPrefs.edit();

prefsEditor.putBoolean(key, allowed);

prefsEditor.commit();

public static Boolean getFromPref(Context context, String key) {

SharedPreferences myPrefs = context.getSharedPreferences(CAMERA_PREF,

Context.MODE_PRIVATE);

return (myPrefs.getBoolean(key, false));


}

private void showAlert() {

AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();

alertDialog.setTitle("Alert");

alertDialog.setMessage("App needs to access the Camera.");

alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "DONT ALLOW",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

finish();

});

alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "ALLOW",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

ActivityCompat.requestPermissions(MainActivity.this,

new String[]{Manifest.permission.CAMERA},

MY_PERMISSIONS_REQUEST_CAMERA);

});

alertDialog.show();

private void showSettingsAlert() {

AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();

alertDialog.setTitle("Alert");
alertDialog.setMessage("App needs to access the Camera.");

alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "DONT ALLOW",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

//finish();

});

alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "SETTINGS",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

startInstalledAppDetailsActivity(MainActivity.this);

});

alertDialog.show();

@Override

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {

switch (requestCode) {

case MY_PERMISSIONS_REQUEST_CAMERA: {

for (int i = 0, len = permissions.length; i < len; i++) {

String permission = permissions[i];

if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
boolean

showRationale =

ActivityCompat.shouldShowRequestPermissionRationale(

this, permission);

if (showRationale) {

showAlert();

} else if (!showRationale) {

// user denied flagging NEVER ASK AGAIN

// you can either enable some fall back,

// disable features of your app

// or open another dialog explaining

// again the permission and directing to

// the app setting

saveToPreferences(MainActivity.this, ALLOW_KEY, true);

Following will be the content of res/layout/activity_main.xml file−

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

</RelativeLayout>

Following will be the content of res/values/strings.xml to define one new constants


<resources>

<string name="app_name">My Application</string>

</resources>

Following is the default content of AndroidManifest.xml −

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.sairamkrishna.myapplication" >

<uses-permission android:name="android.permission.CAMERA" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.example.sairamkrishna.myapplication.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

// other 'case' lines to check for other

// permissions this app might request


}

@Override

protected void onResume() {

super.onResume();

public static void startInstalledAppDetailsActivity(final Activity context) {

if (context == null) {

return;

final Intent i = new Intent();

i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

i.addCategory(Intent.CATEGORY_DEFAULT);

i.setData(Uri.parse("package:" + context.getPackageName()));

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

context.startActivity(i);

private void openCamera() {

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");

startActivity(intent);

}
Providing Bluetooth connectivity

package com.example.sairamkrishna.myapplication;

import android.app.Activity;

import android.bluetooth.BluetoothAdapter;

import android.bluetooth.BluetoothDevice;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;

import android.widget.Toast;

import java.util.ArrayList;

import java.util.Set;

public class MainActivity extends Activity {

Button b1,b2,b3,b4;

private BluetoothAdapter BA;

private Set<BluetoothDevice>pairedDevices;

ListView lv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

b1 = (Button) findViewById(R.id.button);

b2=(Button)findViewById(R.id.button2);
b3=(Button)findViewById(R.id.button3);

b4=(Button)findViewById(R.id.button4);

BA = BluetoothAdapter.getDefaultAdapter();

lv = (ListView)findViewById(R.id.listView);

public void on(View v){

if (!BA.isEnabled()) {

Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(turnOn, 0);

Toast.makeText(getApplicationContext(), "Turned on",Toast.LENGTH_LONG).show();

} else {

Toast.makeText(getApplicationContext(), "Already on", Toast.LENGTH_LONG).show();

public void off(View v){

BA.disable();

Toast.makeText(getApplicationContext(), "Turned off" ,Toast.LENGTH_LONG).show();

public void visible(View v){

Intent getVisible = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);

startActivityForResult(getVisible, 0);

public void list(View v){

pairedDevices = BA.getBondedDevices();
ArrayList list = new ArrayList();

for(BluetoothDevice bt : pairedDevices) list.add(bt.getName());

Toast.makeText(getApplicationContext(), "Showing Paired Devices",Toast.LENGTH_SHORT).show();

final ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list);

lv.setAdapter(adapter);

Here is the content of activity_main.xml

Here abc indicates about logo of tutorialspoint.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin"

tools:context=".MainActivity"

android:transitionGroup="true">

<TextView android:text="Bluetooth Example"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textview"

android:textSize="35dp"
android:layout_alignParentTop="true"

android:layout_centerHorizontal="true" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tutorials point"

android:id="@+id/textView"

android:layout_below="@+id/textview"

android:layout_centerHorizontal="true"

android:textColor="#ff7aff24"

android:textSize="35dp" />

<ImageView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/imageView"

android:src="@drawable/abc"

android:layout_below="@+id/textView"

android:layout_centerHorizontal="true"

android:theme="@style/Base.TextAppearance.AppCompat" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Turn On"

android:id="@+id/button"

android:layout_below="@+id/imageView"

android:layout_toStartOf="@+id/imageView"

android:layout_toLeftOf="@+id/imageView"

android:clickable="true"
android:onClick="on" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Get visible"

android:onClick="visible"

android:id="@+id/button2"

android:layout_alignBottom="@+id/button"

android:layout_centerHorizontal="true" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="List devices"

android:onClick="list"

android:id="@+id/button3"

android:layout_below="@+id/imageView"

android:layout_toRightOf="@+id/imageView"

android:layout_toEndOf="@+id/imageView" />

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="turn off"

android:onClick="off"

android:id="@+id/button4"

android:layout_below="@+id/button"

android:layout_alignParentLeft="true"

android:layout_alignParentStart="true" />
<ListView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/listView"

android:layout_alignParentBottom="true"

android:layout_alignLeft="@+id/button"

android:layout_alignStart="@+id/button"

android:layout_below="@+id/textView2" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Paired devices:"

android:id="@+id/textView2"

android:textColor="#ff34ff06"

android:textSize="25dp"

android:layout_below="@+id/button4"

android:layout_alignLeft="@+id/listView"

android:layout_alignStart="@+id/listView" />

</RelativeLayout>

Here is the content of Strings.xml

<resources>

<string name="app_name">My Application</string>

</resources>

Here is the content of AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.sairamkrishna.myapplication" >

<uses-permission android:name="android.permission.BLUETOOTH"/>

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name=".MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>
Perform Async task using SQLite

<?xml version = "1.0" encoding = "utf-8"?>

<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"

   xmlns:tools = "http://schemas.android.com/tools"

   android:id = "@+id/rootview"

   android:layout_width = "match_parent"

   android:layout_height = "match_parent"

   android:orientation = "vertical"

   android:background = "#c1c1c1"

   android:gravity = "center_horizontal"

   tools:context = ".MainActivity">

<Button

   android:id = "@+id/asyncTask"

   android:text = "Download"

   android:layout_width = "wrap_content"

   android:layout_height = "wrap_content" />

<ImageView

   android:id = "@+id/image"

   android:layout_width = "300dp"

   android:layout_height = "300dp" />

</LinearLayout>

src/MainActivity.java

package com.example.andy.myapplication;

import android.app.ProgressDialog;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;
import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

public class MainActivity extends AppCompatActivity {

   URL ImageUrl = null;

   InputStream is = null;

   Bitmap bmImg = null;

   ImageView imageView= null;

   ProgressDialog p;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      Button button=findViewById(R.id.asyncTask);

      imageView=findViewById(R.id.image);

      button.setOnClickListener(new View.OnClickListener() {

         @Override

         public void onClick(View v) {

            AsyncTaskExample asyncTask=new AsyncTaskExample();

            asyncTask.execute("https://www.tutorialspoint.com/images/tp-logo-diamond.png");

         }

      });

   }

   private class AsyncTaskExample extends AsyncTask<String, String, Bitmap> {

      @Override

      protected void onPreExecute() {

         super.onPreExecute();

         p = new ProgressDialog(MainActivity.this);

         p.setMessage("Please wait...It is downloading");

         p.setIndeterminate(false);

         p.setCancelable(false);
         p.show();

   }

      @Override

      protected Bitmap doInBackground(String... strings) {

         try {

            ImageUrl = new URL(strings[0]);

            HttpURLConnection conn = (HttpURLConnection) ImageUrl.openConnection();

            conn.setDoInput(true);

            conn.connect();

            is = conn.getInputStream();

            BitmapFactory.Options options = new BitmapFactory.Options();

            options.inPreferredConfig = Bitmap.Config.RGB_565;

            bmImg = BitmapFactory.decodeStream(is, null, options);

         } catch (IOException e) {

            e.printStackTrace();

         }

         return bmImg;

   }

      @Override

      protected void onPostExecute(Bitmap bitmap) {

         super.onPostExecute(bitmap);

         if(imageView!=null) {

            p.hide();

            imageView.setImageBitmap(bitmap);

         }else {

            p.show();

         }

   }

   }

manifest.xml

<?xml version = "1.0" encoding = "utf-8"?>


<manifest xmlns:android = "http://schemas.android.com/apk/res/android"

package = "com.example.andy.myapplication">

   <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 = ".MainActivity">

         <intent-filter>

            <action android:name = "android.intent.action.MAIN" />

            <category android:name = "android.intent.category.LAUNCHER" />

         </intent-filter>

      </activity>

   </application>

</manifest>

You might also like