What is thread in Java.
Thread is a program in execution. All Java programs have at least one thread, known as the main thread, which is created by the JVM at the program’s start, when the main() method is invoked with the main thread. In Java, creating a thread is accomplished by implementing an interface and extending a class. Every Java thread is created and controlled by the java.lang.Thread class.
When a thread is created, it is assigned a priority. The thread with higher priority is executed first, followed by lower-priority threads. The JVM stops executing threads under either of the following conditions:
- If the exit method has been invoked and authorized by the security manager
- All the daemon threads of the program have died
Explanation of oops concepts
Object means a real word entity such as pen, chair, table etc.Object-Oriented Programming is a methodology or paradigm to design a program using classes and objects. It simplifies the software development and maintenance by providing some concepts:
- Object
- Class
- Inheritance
- Polymorphism
- Abstraction
- Encapsulation
Object
Any entity that has state and behavior is known as an object. For example: chair, pen, table, keyboard, bike etc. It can be physical and logical.
Class
Collection of objects is called class. It is a logical entity.
Inheritance
When one object acquires all the properties and behaviours of parent object i.e. known as inheritance. It provides code reusability. It is used to achieve runtime polymorphism.
Polymorphism
When one task is performed by different ways i.e. known as polymorphism. For example: to convense the customer differently, to draw something e.g. shape or rectangle etc.
In java, we use method overloading and method overriding to achieve polymorphism.
Another example can be to speak something e.g. cat speaks meaw, dog barks woof etc.
Abstraction
Hiding internal details and showing functionality is known as abstraction. For example: phone call, we don't know the internal processing.
In java, we use abstract class and interface to achieve abstraction.
Encapsulation
Binding (or wrapping) code and data together into a single unit is known as encapsulation. For example: capsule, it is wrapped with different medicines.
A java class is the example of encapsulation. Java bean is the fully encapsulated class because all the data members are private here.
How to implement share via option in android
Intent i=new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject test");
i.putExtra(android.content.Intent.EXTRA_TEXT, "extra text that you want to put");
startActivity(Intent.createChooser(i,"Share via"));
Make phone call using intent in android
1. Add below permission in manifest file :
2. Use below code for phone call.
<uses-permission android:name="android.permission.CALL_PHONE" />
2. Use below code for phone call.
String mobileno = "9999999999";
String uri = "tel:" + mobileno.trim() ;
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
What is jQuery ?
jQuery is JavaScript library which contains predefined methods like show(), hide() etc.
In Javascript we are required so many lined of code for hide and display particular section, but in jQuery we are required only single line of code.
for using jQuery we required js file which contains all the predefined methods.
Prevent from android.os.NetworkOnMainThreadException
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
How to load pdf file in your android application
WebView webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.loadUrl("https://docs.google.com/gview?embedded=true&url=<PDF_COMPLETE_URL>");
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
}
});
Webview in android
WebView is a view that display web pages inside your application. You can also specify HTML string and can show it inside your application using WebView. WebView makes turns your application to a web application.
<WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl("http://www.google.com");
If you click on any link inside the webpage of the webview, that page will not be loaded inside your webview so in that case we need to extend our class from WebViewClient and override its method.
private class MyBrowser extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
How to call another activity in android?
- Intent i = new Intent(getApplicationContext(), ActivityTwo.class);
- startActivity(i);
What is intent?
It is a kind of message or information that is passed to the components. It is used to launch an activity, display a web page, send sms, send email etc. There are two types of intents in android:
- Implicit Intent : It is used to invoke the system components.
- Explicit Intent : It is used to invoke the activity class.
What are the life cycle methods of android activity?
There are 7 life-cycle methods of activity. They are as follows:
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onRestart()
- onDestroy()
What is Android?
Android is an open-source, linux-based operating system that is used in mobiles, tablets, televisions etc.
Are JVM's platform independent?
JVM's are not platform independent. JVM's are platform specific run time implementation provided by the vendor.
What is a JVM?
JVM is Java Virtual Machine which is a run time environment for the compiled java class files.
How to create PATH and JAVA_HOME environment variables from command prompt (cmd)
>setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0"
>setx PATH "%PATH%;%JAVA_HOME%\bin";
>setx PATH "%PATH%;%JAVA_HOME%\bin";
Java 7 Features
1. Strings in Switch:
public void testStringInSwitch(String param){
final String JAVA5 = "Java 5";
final String JAVA6 = "Java 6";
final String JAVA7 = "Java 7";
switch (param) {
case JAVA5:
System.out.println(JAVA5);
break;
case JAVA6:
System.out.println(JAVA6);
break;
case JAVA7:
System.out.println(JAVA7);
break;
}
}
2. Binary Literals:
public void testBinaryIntegralLiterals(){
int binary = 0b1000; //2^3 = 8
if (binary == 8){
System.out.println(true);
} else{
System.out.println(false);
}
}
3. Underscore Between Literals:
public void testUnderscoresNumericLiterals() {
int oneMillion_ = 1_000_000; //new
int oneMillion = 1000000;
if (oneMillion_ == oneMillion){
System.out.println(true);
} else{
System.out.println(false);
}
}
4. Diamond Syntax:
public void testDinamond(){
List list = new ArrayList<>();
Map> map = new HashMap<>();
}
5. Multi-Catch Similar Exceptions:
public void testMultiCatch(){
try {
throw new FileNotFoundException("FileNotFoundException");
} catch (FileNotFoundException | IOException fnfo) {
fnfo.printStackTrace();
}
}
6. Try with Resources:
public void testTryWithResourcesStatement() throws FileNotFoundException, IOException{
try (FileInputStream in = new FileInputStream("java7.txt")) {
System.out.println(in.read());
}
}
public void testStringInSwitch(String param){
final String JAVA5 = "Java 5";
final String JAVA6 = "Java 6";
final String JAVA7 = "Java 7";
switch (param) {
case JAVA5:
System.out.println(JAVA5);
break;
case JAVA6:
System.out.println(JAVA6);
break;
case JAVA7:
System.out.println(JAVA7);
break;
}
}
2. Binary Literals:
public void testBinaryIntegralLiterals(){
int binary = 0b1000; //2^3 = 8
if (binary == 8){
System.out.println(true);
} else{
System.out.println(false);
}
}
3. Underscore Between Literals:
public void testUnderscoresNumericLiterals() {
int oneMillion_ = 1_000_000; //new
int oneMillion = 1000000;
if (oneMillion_ == oneMillion){
System.out.println(true);
} else{
System.out.println(false);
}
}
4. Diamond Syntax:
public void testDinamond(){
List list = new ArrayList<>();
Map> map = new HashMap<>();
}
5. Multi-Catch Similar Exceptions:
public void testMultiCatch(){
try {
throw new FileNotFoundException("FileNotFoundException");
} catch (FileNotFoundException | IOException fnfo) {
fnfo.printStackTrace();
}
}
6. Try with Resources:
public void testTryWithResourcesStatement() throws FileNotFoundException, IOException{
try (FileInputStream in = new FileInputStream("java7.txt")) {
System.out.println(in.read());
}
}
Difference between path band classpath in Java
1).Path is an environment variable which is used by the operating system to find the executables.
Classpath is an environment variable which is used by the Java compiler to find the path, of classes.ie in J2EE we give the path of jar files.
2).PATH is nothing but setting up an environment for operating system. Operating System will look in this PATH for executables.
Classpath is nothing but setting up the environment for Java. Java will use to find compiled classes
3).Path refers to the system while classpath refers to the Developing Envornment.
In path we set the path of executables while in
classpath we set path of jars for compiling classes.
Classpath is an environment variable which is used by the Java compiler to find the path, of classes.ie in J2EE we give the path of jar files.
2).PATH is nothing but setting up an environment for operating system. Operating System will look in this PATH for executables.
Classpath is nothing but setting up the environment for Java. Java will use to find compiled classes
3).Path refers to the system while classpath refers to the Developing Envornment.
In path we set the path of executables while in
classpath we set path of jars for compiling classes.
Random String Generation in Java
import java.util.Random;
public class RandomStringGen {
private static final String CHAR_LIST =
"1234567890";
private static final int RANDOM_STRING_LENGTH = 4;
/**
* This method generates random string
* @return
*/
public String generateRandomString(){
StringBuffer randStr = new StringBuffer();
for(int i=0; i<RANDOM_STRING_LENGTH; i++){
int number = getRandomNumber();
char ch = CHAR_LIST.charAt(number);
randStr.append(ch);
}
return randStr.toString();
}
/**
* This method generates random numbers
* @return int
*/
private int getRandomNumber() {
int randomInt = 0;
Random randomGenerator = new Random();
randomInt = randomGenerator.nextInt(CHAR_LIST.length());
if (randomInt - 1 == -1) {
return randomInt;
} else {
return randomInt - 1;
}
}
}
public class RandomStringGen {
private static final String CHAR_LIST =
"1234567890";
private static final int RANDOM_STRING_LENGTH = 4;
/**
* This method generates random string
* @return
*/
public String generateRandomString(){
StringBuffer randStr = new StringBuffer();
for(int i=0; i<RANDOM_STRING_LENGTH; i++){
int number = getRandomNumber();
char ch = CHAR_LIST.charAt(number);
randStr.append(ch);
}
return randStr.toString();
}
/**
* This method generates random numbers
* @return int
*/
private int getRandomNumber() {
int randomInt = 0;
Random randomGenerator = new Random();
randomInt = randomGenerator.nextInt(CHAR_LIST.length());
if (randomInt - 1 == -1) {
return randomInt;
} else {
return randomInt - 1;
}
}
}
Run task periodically in Java
Schedular Task :
For this functionality,
You should create a class extending TimerTask(available in java.util package). TimerTask is a abstract class.
Write your code in public void run() method that you want to execute periodically.
Insert below code in your Main class.
import java.util.TimerTask;
import java.util.Date;
/**
*
* @author Dhinakaran P.
*/
// Create a class extends with TimerTask
public class ScheduledTask extends TimerTask {
Date now; // to display current time
// Add your task here
public void run() {
now = new Date(); // initialize date
System.out.println("Time is :" + now); // Display current time
}
}
Run Scheduler Task :
A class to run above scheduler task.
Instantiate Timer Object Timer time = new Timer();
Instantiate Scheduled Task class Object ScheduledTask st = new ScheduledTask();
Assign scheduled task through Timer.shedule() method.
import java.util.Timer;
/**
*
* @author Dhinakaran P.
*/
//Main class
public class SchedulerMain {
public static void main(String args[]) throws InterruptedException {
Timer time = new Timer(); // Instantiate Timer Object
ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class
time.schedule(st, 0, 1000); // Create Repetitively task for every 1 secs
//for demo only.
for (int i = 0; i <= 5; i++) {
System.out.println("Execution in Main Thread...." + i);
Thread.sleep(2000);
if (i == 5) {
System.out.println("Application Terminates");
System.exit(0);
}
}
}
}
Output:
Execution in Main Thread....0
Time is :Tue Jun 19 14:21:42 IST 2012
Time is :Tue Jun 19 14:21:43 IST 2012
Execution in Main Thread....1
Time is :Tue Jun 19 14:21:44 IST 2012
Time is :Tue Jun 19 14:21:45 IST 2012
Execution in Main Thread....2
Time is :Tue Jun 19 14:21:46 IST 2012
Time is :Tue Jun 19 14:21:47 IST 2012
Execution in Main Thread....3
Time is :Tue Jun 19 14:21:48 IST 2012
Time is :Tue Jun 19 14:21:49 IST 2012
Execution in Main Thread....4
Time is :Tue Jun 19 14:21:50 IST 2012
Time is :Tue Jun 19 14:21:51 IST 2012
Application Terminates
Time is :Tue Jun 19 14:21:52 IST 2012
For this functionality,
You should create a class extending TimerTask(available in java.util package). TimerTask is a abstract class.
Write your code in public void run() method that you want to execute periodically.
Insert below code in your Main class.
import java.util.TimerTask;
import java.util.Date;
/**
*
* @author Dhinakaran P.
*/
// Create a class extends with TimerTask
public class ScheduledTask extends TimerTask {
Date now; // to display current time
// Add your task here
public void run() {
now = new Date(); // initialize date
System.out.println("Time is :" + now); // Display current time
}
}
Run Scheduler Task :
A class to run above scheduler task.
Instantiate Timer Object Timer time = new Timer();
Instantiate Scheduled Task class Object ScheduledTask st = new ScheduledTask();
Assign scheduled task through Timer.shedule() method.
import java.util.Timer;
/**
*
* @author Dhinakaran P.
*/
//Main class
public class SchedulerMain {
public static void main(String args[]) throws InterruptedException {
Timer time = new Timer(); // Instantiate Timer Object
ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class
time.schedule(st, 0, 1000); // Create Repetitively task for every 1 secs
//for demo only.
for (int i = 0; i <= 5; i++) {
System.out.println("Execution in Main Thread...." + i);
Thread.sleep(2000);
if (i == 5) {
System.out.println("Application Terminates");
System.exit(0);
}
}
}
}
Output:
Execution in Main Thread....0
Time is :Tue Jun 19 14:21:42 IST 2012
Time is :Tue Jun 19 14:21:43 IST 2012
Execution in Main Thread....1
Time is :Tue Jun 19 14:21:44 IST 2012
Time is :Tue Jun 19 14:21:45 IST 2012
Execution in Main Thread....2
Time is :Tue Jun 19 14:21:46 IST 2012
Time is :Tue Jun 19 14:21:47 IST 2012
Execution in Main Thread....3
Time is :Tue Jun 19 14:21:48 IST 2012
Time is :Tue Jun 19 14:21:49 IST 2012
Execution in Main Thread....4
Time is :Tue Jun 19 14:21:50 IST 2012
Time is :Tue Jun 19 14:21:51 IST 2012
Application Terminates
Time is :Tue Jun 19 14:21:52 IST 2012
Concurrency API in Java
The Concurrency API introduces the concept of an ExecutorService as a higher level replacement for working with threads directly. Executors are capable of running asynchronous tasks and typically manage a pool of threads, so we don't have to create new threads manually. All threads of the internal pool will be reused under the hood for revenant tasks, so we can run as many concurrent tasks as we want throughout the life-cycle of our application with a single executor service.
This is how the first thread-example looks like using executors:
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.submit(() -> {
String threadName = Thread.currentThread().getName();
System.out.println("Hello " + threadName);
});
// => Hello pool-1-thread-1
The class Executors provides convenient factory methods for creating different kinds of executor services. In this sample we use an executor with a thread pool of size one.
The result looks similar to the above sample but when running the code you'll notice an important difference: the java process never stops! Executors have to be stopped explicitly - otherwise they keep listening for new tasks.
An ExecutorService provides two methods for that purpose: shutdown() waits for currently running tasks to finish while shutdownNow() interrupts all running tasks and shut the executor down immediately.
This is the preferred way how I typically shutdown executors:
try {
System.out.println("attempt to shutdown executor");
executor.shutdown();
executor.awaitTermination(5, TimeUnit.SECONDS);
}
catch (InterruptedException e) {
System.err.println("tasks interrupted");
}
finally {
if (!executor.isTerminated()) {
System.err.println("cancel non-finished tasks");
}
executor.shutdownNow();
System.out.println("shutdown finished");
}
This is how the first thread-example looks like using executors:
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.submit(() -> {
String threadName = Thread.currentThread().getName();
System.out.println("Hello " + threadName);
});
// => Hello pool-1-thread-1
The class Executors provides convenient factory methods for creating different kinds of executor services. In this sample we use an executor with a thread pool of size one.
The result looks similar to the above sample but when running the code you'll notice an important difference: the java process never stops! Executors have to be stopped explicitly - otherwise they keep listening for new tasks.
An ExecutorService provides two methods for that purpose: shutdown() waits for currently running tasks to finish while shutdownNow() interrupts all running tasks and shut the executor down immediately.
This is the preferred way how I typically shutdown executors:
try {
System.out.println("attempt to shutdown executor");
executor.shutdown();
executor.awaitTermination(5, TimeUnit.SECONDS);
}
catch (InterruptedException e) {
System.err.println("tasks interrupted");
}
finally {
if (!executor.isTerminated()) {
System.err.println("cancel non-finished tasks");
}
executor.shutdownNow();
System.out.println("shutdown finished");
}
Android Camera API
Use below link to download a code for implementing android camera api in your code :
Android Permission with detailed description
A basic Android application has no permissions associated with it by default, meaning it cannot do anything that would adversely impact the user experience or any data on the device. To make use of protected features of the device, you must include one or more
<uses-permission>
tags in your app manifest.
List of android permission:
String | ACCESS_CHECKIN_PROPERTIES | Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded. | |||||||||
String | ACCESS_COARSE_LOCATION | Allows an app to access approximate location. | |||||||||
String | ACCESS_FINE_LOCATION | Allows an app to access precise location. | |||||||||
String | ACCESS_LOCATION_EXTRA_COMMANDS | Allows an application to access extra location provider commands. | |||||||||
String | ACCESS_NETWORK_STATE | Allows applications to access information about networks. | |||||||||
String | ACCESS_NOTIFICATION_POLICY | Marker permission for applications that wish to access notification policy. | |||||||||
String | ACCESS_WIFI_STATE | Allows applications to access information about Wi-Fi networks. | |||||||||
String | ACCOUNT_MANAGER | Allows applications to call into AccountAuthenticators. | |||||||||
String | ADD_VOICEMAIL | Allows an application to add voicemails into the system. | |||||||||
String | BATTERY_STATS | Allows an application to collect battery statistics | |||||||||
String | BIND_ACCESSIBILITY_SERVICE | Must be required by an AccessibilityService , to ensure that only the system can bind to it. | |||||||||
String | BIND_APPWIDGET | Allows an application to tell the AppWidget service which application can access AppWidget's data. | |||||||||
String | BIND_CARRIER_MESSAGING_SERVICE | This constant was deprecated in API level 23. Use BIND_CARRIER_SERVICES instead | |||||||||
String | BIND_CARRIER_SERVICES | The system process that is allowed to bind to services in carrier apps will have this permission. | |||||||||
String | BIND_CHOOSER_TARGET_SERVICE | Must be required by a ChooserTargetService , to ensure that only the system can bind to it. | |||||||||
String | BIND_DEVICE_ADMIN | Must be required by device administration receiver, to ensure that only the system can interact with it. | |||||||||
String | BIND_DREAM_SERVICE | Must be required by an DreamService , to ensure that only the system can bind to it. | |||||||||
String | BIND_INCALL_SERVICE | Must be required by a InCallService , to ensure that only the system can bind to it. | |||||||||
String | BIND_INPUT_METHOD | Must be required by an InputMethodService , to ensure that only the system can bind to it. | |||||||||
String | BIND_MIDI_DEVICE_SERVICE | Must be required by an MidiDeviceService , to ensure that only the system can bind to it. | |||||||||
String | BIND_NFC_SERVICE | Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it. | |||||||||
String | BIND_NOTIFICATION_LISTENER_SERVICE | Must be required by an NotificationListenerService , to ensure that only the system can bind to it. | |||||||||
String | BIND_PRINT_SERVICE | Must be required by a PrintService , to ensure that only the system can bind to it. | |||||||||
String | BIND_REMOTEVIEWS | Must be required by a RemoteViewsService , to ensure that only the system can bind to it. | |||||||||
String | BIND_TELECOM_CONNECTION_SERVICE | Must be required by a ConnectionService , to ensure that only the system can bind to it. | |||||||||
String | BIND_TEXT_SERVICE | Must be required by a TextService (eg SpellCheckerService) to ensure that only the system can bind to it. | |||||||||
String | BIND_TV_INPUT | Must be required by a TvInputService to ensure that only the system can bind to it. | |||||||||
String | BIND_VOICE_INTERACTION | Must be required by a VoiceInteractionService , to ensure that only the system can bind to it. | |||||||||
String | BIND_VPN_SERVICE | Must be required by a VpnService , to ensure that only the system can bind to it. | |||||||||
String | BIND_WALLPAPER | Must be required by a WallpaperService , to ensure that only the system can bind to it. | |||||||||
String | BLUETOOTH | Allows applications to connect to paired bluetooth devices. | |||||||||
String | BLUETOOTH_ADMIN | Allows applications to discover and pair bluetooth devices. | |||||||||
String | BLUETOOTH_PRIVILEGED | Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access. | |||||||||
String | BODY_SENSORS | Allows an application to access data from sensors that the user uses to measure what is happening inside his/her body, such as heart rate. | |||||||||
String | BROADCAST_PACKAGE_REMOVED | Allows an application to broadcast a notification that an application package has been removed. | |||||||||
String | BROADCAST_SMS | Allows an application to broadcast an SMS receipt notification. | |||||||||
String | BROADCAST_STICKY | Allows an application to broadcast sticky intents. | |||||||||
String | BROADCAST_WAP_PUSH | Allows an application to broadcast a WAP PUSH receipt notification. | |||||||||
String | CALL_PHONE | Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call. | |||||||||
String | CALL_PRIVILEGED | Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed. | |||||||||
String | CAMERA | Required to be able to access the camera device. | |||||||||
String | CAPTURE_AUDIO_OUTPUT | Allows an application to capture audio output. | |||||||||
String | CAPTURE_SECURE_VIDEO_OUTPUT | Allows an application to capture secure video output. | |||||||||
String | CAPTURE_VIDEO_OUTPUT | Allows an application to capture video output. | |||||||||
String | CHANGE_COMPONENT_ENABLED_STATE | Allows an application to change whether an application component (other than its own) is enabled or not. | |||||||||
String | CHANGE_CONFIGURATION | Allows an application to modify the current configuration, such as locale. | |||||||||
String | CHANGE_NETWORK_STATE | Allows applications to change network connectivity state. | |||||||||
String | CHANGE_WIFI_MULTICAST_STATE | Allows applications to enter Wi-Fi Multicast mode. | |||||||||
String | CHANGE_WIFI_STATE | Allows applications to change Wi-Fi connectivity state. | |||||||||
String | CLEAR_APP_CACHE | Allows an application to clear the caches of all installed applications on the device. | |||||||||
String | CONTROL_LOCATION_UPDATES | Allows enabling/disabling location update notifications from the radio. | |||||||||
String | DELETE_CACHE_FILES | Allows an application to delete cache files. | |||||||||
String | DELETE_PACKAGES | Allows an application to delete packages. | |||||||||
String | DIAGNOSTIC | Allows applications to RW to diagnostic resources. | |||||||||
String | DISABLE_KEYGUARD | Allows applications to disable the keyguard if it is not secure. | |||||||||
String | DUMP | Allows an application to retrieve state dump information from system services. | |||||||||
String | EXPAND_STATUS_BAR | Allows an application to expand or collapse the status bar. | |||||||||
String | FACTORY_TEST | Run as a manufacturer test application, running as the root user. | |||||||||
String | FLASHLIGHT | Allows access to the flashlight. | |||||||||
String | GET_ACCOUNTS | Allows access to the list of accounts in the Accounts Service. | |||||||||
String | GET_ACCOUNTS_PRIVILEGED | Allows access to the list of accounts in the Accounts Service. | |||||||||
String | GET_PACKAGE_SIZE | Allows an application to find out the space used by any package. | |||||||||
String | GET_TASKS | This constant was deprecated in API level 21. No longer enforced. | |||||||||
String | GLOBAL_SEARCH | This permission can be used on content providers to allow the global search system to access their data. | |||||||||
String | INSTALL_LOCATION_PROVIDER | Allows an application to install a location provider into the Location Manager. | |||||||||
String | INSTALL_PACKAGES | Allows an application to install packages. | |||||||||
String | INSTALL_SHORTCUT | Allows an application to install a shortcut in Launcher. | |||||||||
String | INTERNET | Allows applications to open network sockets. | |||||||||
String | KILL_BACKGROUND_PROCESSES | Allows an application to call killBackgroundProcesses(String) . | |||||||||
String | LOCATION_HARDWARE | Allows an application to use location features in hardware, such as the geofencing api. | |||||||||
String | MANAGE_DOCUMENTS | Allows an application to manage access to documents, usually as part of a document picker. | |||||||||
String | MASTER_CLEAR | Not for use by third-party applications. | |||||||||
String | MEDIA_CONTENT_CONTROL | Allows an application to know what content is playing and control its playback. | |||||||||
String | MODIFY_AUDIO_SETTINGS | Allows an application to modify global audio settings. | |||||||||
String | MODIFY_PHONE_STATE | Allows modification of the telephony state - power on, mmi, etc. | |||||||||
String | MOUNT_FORMAT_FILESYSTEMS | Allows formatting file systems for removable storage. | |||||||||
String | MOUNT_UNMOUNT_FILESYSTEMS | Allows mounting and unmounting file systems for removable storage. | |||||||||
String | NFC | Allows applications to perform I/O operations over NFC. | |||||||||
String | PACKAGE_USAGE_STATS | Allows an application to collect component usage statistics
Declaring the permission implies intention to use the API and the user of the device can grant permission through the Settings application.
| |||||||||
String | PERSISTENT_ACTIVITY | This constant was deprecated in API level 9. This functionality will be removed in the future; please do not use. Allow an application to make its activities persistent. | |||||||||
String | PROCESS_OUTGOING_CALLS | Allows an application to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether. | |||||||||
String | READ_CALENDAR | Allows an application to read the user's calendar data. | |||||||||
String | READ_CALL_LOG | Allows an application to read the user's call log. | |||||||||
String | READ_CONTACTS | Allows an application to read the user's contacts data. | |||||||||
String | READ_EXTERNAL_STORAGE | Allows an application to read from external storage. | |||||||||
String | READ_FRAME_BUFFER | Allows an application to take screen shots and more generally get access to the frame buffer data. | |||||||||
String | READ_INPUT_STATE | This constant was deprecated in API level 16. The API that used this permission has been removed. | |||||||||
String | READ_LOGS | Allows an application to read the low-level system log files. | |||||||||
String | READ_PHONE_STATE | Allows read only access to phone state. | |||||||||
String | READ_SMS | Allows an application to read SMS messages. | |||||||||
String | READ_SYNC_SETTINGS | Allows applications to read the sync settings. | |||||||||
String | READ_SYNC_STATS | Allows applications to read the sync stats. | |||||||||
String | READ_VOICEMAIL | Allows an application to read voicemails in the system. | |||||||||
String | REBOOT | Required to be able to reboot the device. | |||||||||
String | RECEIVE_BOOT_COMPLETED | Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting. | |||||||||
String | RECEIVE_MMS | Allows an application to monitor incoming MMS messages. | |||||||||
String | RECEIVE_SMS | Allows an application to receive SMS messages. | |||||||||
String | RECEIVE_WAP_PUSH | Allows an application to receive WAP push messages. | |||||||||
String | RECORD_AUDIO | Allows an application to record audio. | |||||||||
String | REORDER_TASKS | Allows an application to change the Z-order of tasks. | |||||||||
String | REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | Permission an application must hold in order to useACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS . | |||||||||
String | REQUEST_INSTALL_PACKAGES | Allows an application to request installing packages. | |||||||||
String | RESTART_PACKAGES | This constant was deprecated in API level 8. The restartPackage(String) API is no longer supported. | |||||||||
String | SEND_RESPOND_VIA_MESSAGE | Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls. | |||||||||
String | SEND_SMS | Allows an application to send SMS messages. | |||||||||
String | SET_ALARM | Allows an application to broadcast an Intent to set an alarm for the user. | |||||||||
String | SET_ALWAYS_FINISH | Allows an application to control whether activities are immediately finished when put in the background. | |||||||||
String | SET_ANIMATION_SCALE | Modify the global animation scaling factor. | |||||||||
String | SET_DEBUG_APP | Configure an application for debugging. | |||||||||
String | SET_PREFERRED_APPLICATIONS | This constant was deprecated in API level 7. No longer useful, seeaddPackageToPreferred(String) for details. | |||||||||
String | SET_PROCESS_LIMIT | Allows an application to set the maximum number of (not needed) application processes that can be running. | |||||||||
String | SET_TIME | Allows applications to set the system time. | |||||||||
String | SET_TIME_ZONE | Allows applications to set the system time zone. | |||||||||
String | SET_WALLPAPER | Allows applications to set the wallpaper. | |||||||||
String | SET_WALLPAPER_HINTS | Allows applications to set the wallpaper hints. | |||||||||
String | SIGNAL_PERSISTENT_PROCESSES | Allow an application to request that a signal be sent to all persistent processes. | |||||||||
String | STATUS_BAR | Allows an application to open, close, or disable the status bar and its icons. | |||||||||
String | SYSTEM_ALERT_WINDOW | Allows an app to create windows using the type TYPE_SYSTEM_ALERT , shown on top of all other apps. | |||||||||
String | TRANSMIT_IR | Allows using the device's IR transmitter, if available. | |||||||||
String | UNINSTALL_SHORTCUT | Allows an application to uninstall a shortcut in Launcher. | |||||||||
String | UPDATE_DEVICE_STATS | Allows an application to update device statistics. | |||||||||
String | USE_FINGERPRINT | Allows an app to use fingerprint hardware. | |||||||||
String | USE_SIP | Allows an application to use SIP service. | |||||||||
String | VIBRATE | Allows access to the vibrator. | |||||||||
String | WAKE_LOCK | Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming. | |||||||||
String | WRITE_APN_SETTINGS | Allows applications to write the apn settings. | |||||||||
String | WRITE_CALENDAR | Allows an application to write the user's calendar data. | |||||||||
String | WRITE_CALL_LOG | Allows an application to write (but not read) the user's contacts data. | |||||||||
String | WRITE_CONTACTS | Allows an application to write the user's contacts data. | |||||||||
String | WRITE_EXTERNAL_STORAGE | Allows an application to write to external storage. | |||||||||
String | WRITE_GSERVICES | Allows an application to modify the Google service map. | |||||||||
String | WRITE_SECURE_SETTINGS | Allows an application to read or write the secure system settings. | |||||||||
String | WRITE_SETTINGS | Allows an application to read or write the system settings. | |||||||||
String | WRITE_SYNC_SETTINGS | Allows applications to write the sync settings. | |||||||||
String | WRITE_VOICEMAIL | Allows an application to modify and remove existing voicemails in the system. |
Subscribe to:
Posts (Atom)