19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 195c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackbornimport android.content.pm.ApplicationInfo; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PackageManager; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.AssetManager; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Resources; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.TypedArray; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.sqlite.SQLiteDatabase; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.sqlite.SQLiteDatabase.CursorFactory; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.Bitmap; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.drawable.Drawable; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Looper; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.AttributeSet; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.File; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileInputStream; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileNotFoundException; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileOutputStream; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.IOException; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.InputStream; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface to global information about an application environment. This is 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * an abstract class whose implementation is provided by 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Android system. It 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * allows access to application-specific resources and classes, as well as 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * up-calls for application-level operations such as launching activities, 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * broadcasting and receiving intents, etc. 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic abstract class Context { 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * File creation mode: the default mode, where the created file can only 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be accessed by the calling application (or all applications sharing the 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * same user ID). 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_READABLE 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_WRITEABLE 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int MODE_PRIVATE = 0x0000; 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * File creation mode: allow all other applications to have read access 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to the created file. 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_PRIVATE 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_WRITEABLE 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int MODE_WORLD_READABLE = 0x0001; 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * File creation mode: allow all other applications to have write access 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to the created file. 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_PRIVATE 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_READABLE 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int MODE_WORLD_WRITEABLE = 0x0002; 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * File creation mode: for use with {@link #openFileOutput}, if the file 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * already exists then write data to the end of the existing file 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instead of erasing it. 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int MODE_APPEND = 0x8000; 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Flag for {@link #bindService}: automatically create the service as long 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * as the binding exists. Note that while this will create the service, 834b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * its {@link android.app.Service#onStartCommand} 844b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * method will still only be called due to an 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * explicit call to {@link #startService}. Even without that, though, 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this still provides you with access to the service object while the 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * service is created. 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Specifying this flag also tells the system to treat the service 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * as being as important as your own process -- that is, when deciding 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * which process should be killed to free memory, the service will only 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be considered a candidate as long as the processes of any such bindings 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is also a candidate to be killed. This is to avoid situations where 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the service is being continually created and killed due to low memory. 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int BIND_AUTO_CREATE = 0x0001; 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Flag for {@link #bindService}: include debugging help for mismatched 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * calls to unbind. When this flag is set, the callstack of the following 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #unbindService} call is retained, to be printed if a later 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * incorrect unbind call is made. Note that doing this requires retaining 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * information about the binding that was made for the lifetime of the app, 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * resulting in a leak -- this should only be used for debugging. 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int BIND_DEBUG_UNBIND = 0x0002; 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10809c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn /** 10909c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * Flag for {@link #bindService}: don't allow this binding to raise 11009c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * the target service's process to the foreground scheduling priority. 11109c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * It will still be raised to the at least the same memory priority 11209c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * as the client (so that its process will not be killable in any 11309c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * situation where the client is not killable), but for CPU scheduling 11409c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * purposes it may be left in the background. This only has an impact 11509c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * in the situation where the binding client is a foreground process 11609c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn * and the target service is in a background process. 11709c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn */ 11809c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn public static final int BIND_NOT_FOREGROUND = 0x0004; 11909c916bccbf236ccd0a2c80941e28cc55006e02aDianne Hackborn 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** Return an AssetManager instance for your application's package. */ 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract AssetManager getAssets(); 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** Return a Resources instance for your application's package. */ 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Resources getResources(); 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** Return PackageManager instance to find global package information. */ 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract PackageManager getPackageManager(); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** Return a ContentResolver instance for your application's package. */ 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract ContentResolver getContentResolver(); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the Looper for the main thread of the current process. This is 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the thread used to dispatch calls to application components (activities, 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * services, etc). 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Looper getMainLooper(); 1384b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the context of the single, global Application object of the 141e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * current process. This generally should only be used if you need a 142e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * Context whose lifecycle is separate from the current context, that is 143e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * tied to the lifetime of the process rather than the current component. 1444b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 145e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <p>Consider for example how this interacts with 14636af79434fb62c26238132eaeda2ec5e732f3c2fBrad Fitzpatrick * {@link #registerReceiver(BroadcastReceiver, IntentFilter)}: 147e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <ul> 148e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <li> <p>If used from an Activity context, the receiver is being registered 149e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * within that activity. This means that you are expected to unregister 150e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * before the activity is done being destroyed; in fact if you do not do 151e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * so, the framework will clean up your leaked registration as it removes 152e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * the activity and log an error. Thus, if you use the Activity context 153e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * to register a receiver that is static (global to the process, not 154e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * associated with an Activity instance) then that registration will be 155e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * removed on you at whatever point the activity you used is destroyed. 156e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <li> <p>If used from the Context returned here, the receiver is being 157e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * registered with the global state associated with your application. Thus 158e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * it will never be unregistered for you. This is necessary if the receiver 159e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * is associated with static data, not a particular component. However 160e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * using the ApplicationContext elsewhere can easily lead to serious leaks 161e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * if you forget to unregister, unbind, etc. 162e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * </ul> 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Context getApplicationContext(); 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return a localized, styled CharSequence from the application's package's 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default string table. 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param resId Resource id for the CharSequence text 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final CharSequence getText(int resId) { 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getResources().getText(resId); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return a localized string from the application's package's 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default string table. 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param resId Resource id for the string 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final String getString(int resId) { 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getResources().getString(resId); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return a localized formatted string from the application's package's 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default string table, substituting the format arguments as defined in 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link java.util.Formatter} and {@link java.lang.String#format}. 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param resId Resource id for the format string 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param formatArgs The format arguments that will be used for substitution. 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final String getString(int resId, Object... formatArgs) { 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getResources().getString(resId, formatArgs); 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Set the base theme for this context. Note that this should be called 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * before any views are instantiated in the Context (for example before 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * calling {@link android.app.Activity#setContentView} or 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.view.LayoutInflater#inflate}). 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param resid The style resource describing the theme. 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void setTheme(int resid); 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the Theme object associated with this Context. 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Resources.Theme getTheme(); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve styled attribute information in this Context's theme. See 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Resources.Theme#obtainStyledAttributes(int[])} 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for more information. 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Resources.Theme#obtainStyledAttributes(int[]) 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final TypedArray obtainStyledAttributes( 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int[] attrs) { 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getTheme().obtainStyledAttributes(attrs); 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve styled attribute information in this Context's theme. See 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Resources.Theme#obtainStyledAttributes(int, int[])} 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for more information. 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Resources.Theme#obtainStyledAttributes(int, int[]) 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final TypedArray obtainStyledAttributes( 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resid, int[] attrs) throws Resources.NotFoundException { 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getTheme().obtainStyledAttributes(resid, attrs); 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve styled attribute information in this Context's theme. See 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int)} 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for more information. 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int) 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final TypedArray obtainStyledAttributes( 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AttributeSet set, int[] attrs) { 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getTheme().obtainStyledAttributes(set, attrs, 0, 0); 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve styled attribute information in this Context's theme. See 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int)} 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for more information. 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int) 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final TypedArray obtainStyledAttributes( 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) { 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getTheme().obtainStyledAttributes( 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project set, attrs, defStyleAttr, defStyleRes); 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return a class loader you can use to retrieve classes in this package. 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract ClassLoader getClassLoader(); 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** Return the name of this application's package. */ 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract String getPackageName(); 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2715c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn /** Return the full application info for this context's package. */ 2725c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn public abstract ApplicationInfo getApplicationInfo(); 2734b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2753214839482aebcdfccc7cec0b0849739ef46fa68Kenny Root * Return the full path to this context's primary Android package. 2763214839482aebcdfccc7cec0b0849739ef46fa68Kenny Root * The Android package is a ZIP file which contains the application's 2773214839482aebcdfccc7cec0b0849739ef46fa68Kenny Root * primary resources. 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Note: this is not generally useful for applications, since they should 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not be directly accessing the file system. 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return String Path to the resources. 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract String getPackageResourcePath(); 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2873214839482aebcdfccc7cec0b0849739ef46fa68Kenny Root * Return the full path to this context's primary Android package. 2883214839482aebcdfccc7cec0b0849739ef46fa68Kenny Root * The Android package is a ZIP file which contains application's 2893214839482aebcdfccc7cec0b0849739ef46fa68Kenny Root * primary code and assets. 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Note: this is not generally useful for applications, since they should 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not be directly accessing the file system. 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return String Path to the code and assets. 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract String getPackageCodePath(); 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 29923ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato * {@hide} 30023ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato * Return the full path to the shared prefs file for the given prefs group name. 30123ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato * 30223ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato * <p>Note: this is not generally useful for applications, since they should 30323ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato * not be directly accessing the file system. 30423ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato */ 30523ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato public abstract File getSharedPrefsFile(String name); 30623ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato 30723ecae3bbb60c5af940f3a22170d75eb6ac05b69Joe Onorato /** 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve and hold the contents of the preferences file 'name', returning 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a SharedPreferences through which you can retrieve and modify its 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * values. Only one instance of the SharedPreferences object is returned 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to any callers for the same name, meaning they will see each other's 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * edits as soon as they are made. 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name Desired preferences file. If a preferences file by this name 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * does not exist, it will be created when you retrieve an 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * editor (SharedPreferences.edit()) and then commit changes (Editor.commit()). 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default operation, {@link #MODE_WORLD_READABLE} 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and {@link #MODE_WORLD_WRITEABLE} to control permissions. 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns the single SharedPreferences instance that can be used 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to retrieve and modify the preference values. 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_PRIVATE 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_READABLE 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_WRITEABLE 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract SharedPreferences getSharedPreferences(String name, 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode); 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Open a private file associated with this Context's application package 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for reading. 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name of the file to open; can not contain path 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * separators. 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return FileInputStream Resulting input stream. 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #fileList 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #deleteFile 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see java.io.FileInputStream#FileInputStream(String) 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract FileInputStream openFileInput(String name) 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws FileNotFoundException; 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Open a private file associated with this Context's application package 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for writing. Creates the file if it doesn't already exist. 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name of the file to open; can not contain path 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * separators. 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default operation, {@link #MODE_APPEND} to append to an existing file, 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #MODE_WORLD_READABLE} and {@link #MODE_WORLD_WRITEABLE} to control 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permissions. 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return FileOutputStream Resulting output stream. 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_APPEND 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_PRIVATE 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_READABLE 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_WRITEABLE 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileInput 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #fileList 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #deleteFile 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see java.io.FileOutputStream#FileOutputStream(String) 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract FileOutputStream openFileOutput(String name, int mode) 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws FileNotFoundException; 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Delete the given private file associated with this Context's 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * application package. 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name of the file to delete; can not contain path 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * separators. 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the file was successfully deleted; else 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * false. 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileInput 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #fileList 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see java.io.File#delete() 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract boolean deleteFile(String name); 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the absolute path on the filesystem where a file created with 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #openFileOutput} is stored. 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name of the file for which you would like to get 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * its path. 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns an absolute path to the given file. 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getFilesDir 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getDir 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract File getFileStreamPath(String name); 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the absolute path to the directory on the filesystem where 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * files created with {@link #openFileOutput} are stored. 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns the path of the directory holding application files. 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getFileStreamPath 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getDir 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract File getFilesDir(); 4164b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 418e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * Returns the absolute path to the directory on the external filesystem 419e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * (that is somewhere on {@link android.os.Environment#getExternalStorageDirectory() 420acaf028fc9efd9754f57ed65476e79a816811b35Dianne Hackborn * Environment.getExternalStorageDirectory()}) where the application can 421e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * place persistent files it owns. These files are private to the 422e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * applications, and not typically visible to the user as media. 4234b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 424e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <p>This is like {@link #getFilesDir()} in that these 425e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * files will be deleted when the application is uninstalled, however there 426e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * are some important differences: 4274b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 428e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <ul> 429e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <li>External files are not always available: they will disappear if the 430e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * user mounts the external storage on a computer or removes it. See the 431e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * APIs on {@link android.os.Environment} for information in the storage state. 432e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <li>There is no security enforced with these files. All applications 433e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * can read and write files placed here. 434e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * </ul> 4354b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 436e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <p>Here is an example of typical code to manipulate a file in 437e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * an application's private storage:</p> 4384b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 439e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@sample development/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.java 440e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * private_file} 441e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * 442acaf028fc9efd9754f57ed65476e79a816811b35Dianne Hackborn * <p>If you supply a non-null <var>type</var> to this function, the returned 443e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * file will be a path to a sub-directory of the given type. Though these files 444e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * are not automatically scanned by the media scanner, you can explicitly 445e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * add them to the media database with 446e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.media.MediaScannerConnection#scanFile(Context, String[], String[], 447b7c8c76180dc1abbf55c734ab121a7a2469060f6Ray Chen * OnScanCompletedListener) MediaScannerConnection.scanFile}. 448e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * Note that this is not the same as 449e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#getExternalStoragePublicDirectory 450e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * Environment.getExternalStoragePublicDirectory()}, which provides 451e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * directories of media shared by all applications. The 452e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * directories returned here are 453acaf028fc9efd9754f57ed65476e79a816811b35Dianne Hackborn * owned by the application, and their contents will be removed when the 454e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * application is uninstalled. Unlike 455e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#getExternalStoragePublicDirectory 456e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * Environment.getExternalStoragePublicDirectory()}, the directory 457e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * returned here will be automatically created for you. 4584b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 459e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <p>Here is an example of typical code to manipulate a picture in 460e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * an application's private storage and add it to the media database:</p> 4614b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 462e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@sample development/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.java 463e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * private_picture} 4644b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 465e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * @param type The type of files directory to return. May be null for 466e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * the root of the files directory or one of 467e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * the following Environment constants for a subdirectory: 468e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#DIRECTORY_MUSIC}, 469e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#DIRECTORY_PODCASTS}, 470e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#DIRECTORY_RINGTONES}, 471e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#DIRECTORY_ALARMS}, 472e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#DIRECTORY_NOTIFICATIONS}, 473e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#DIRECTORY_PICTURES}, or 474e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * {@link android.os.Environment#DIRECTORY_MOVIES}. 4754b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 476e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * @return Returns the path of the directory holding application files 477e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * on external storage. Returns null if external storage is not currently 478e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * mounted so it could not ensure the path exists; you will need to call 479e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * this method again when it is available. 480e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * 481e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * @see #getFilesDir 482acaf028fc9efd9754f57ed65476e79a816811b35Dianne Hackborn * @see android.os.Environment#getExternalStoragePublicDirectory 483e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn */ 484e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn public abstract File getExternalFilesDir(String type); 4854b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 486e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn /** 4874b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * Returns the absolute path to the application specific cache directory 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on the filesystem. These files will be ones that get deleted first when the 489e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * device runs low on storage. 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * There is no guarantee when these files will be deleted. 4914b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 492e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <strong>Note: you should not <em>rely</em> on the system deleting these 493e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * files for you; you should always have a reasonable maximum, such as 1 MB, 494e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * for the amount of space you consume with cache files, and prune those 495e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * files when exceeding that space.</strong> 4964b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns the path of the directory holding application cache files. 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getFileStreamPath 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getDir 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract File getCacheDir(); 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 506e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * Returns the absolute path to the directory on the external filesystem 507e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * (that is somewhere on {@link android.os.Environment#getExternalStorageDirectory() 508e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * Environment.getExternalStorageDirectory()} where the application can 509e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * place cache files it owns. 5104b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 511e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <p>This is like {@link #getCacheDir()} in that these 512e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * files will be deleted when the application is uninstalled, however there 513e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * are some important differences: 5144b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 515e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <ul> 516e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <li>The platform does not monitor the space available in external storage, 517e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * and thus will not automatically delete these files. Note that you should 518e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * be managing the maximum space you will use for these anyway, just like 519e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * with {@link #getCacheDir()}. 520e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <li>External files are not always available: they will disappear if the 521e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * user mounts the external storage on a computer or removes it. See the 522e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * APIs on {@link android.os.Environment} for information in the storage state. 523e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * <li>There is no security enforced with these files. All applications 524e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * can read and write files placed here. 525e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * </ul> 526e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * 527e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * @return Returns the path of the directory holding application cache files 528e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * on external storage. Returns null if external storage is not currently 529e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * mounted so it could not ensure the path exists; you will need to call 530e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * this method again when it is available. 531e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * 532e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn * @see #getCacheDir 533e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn */ 534e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn public abstract File getExternalCacheDir(); 5354b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 536e83cefcef07f9ac025642c1ffec76b4c7ab39cf2Dianne Hackborn /** 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns an array of strings naming the private files associated with 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this Context's application package. 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Array of strings naming the private files. 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileInput 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #deleteFile 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract String[] fileList(); 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve, creating if needed, a new directory in which the application 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can place its own custom data files. You can use the returned File 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * object to create and access files in this directory. Note that files 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * created through a File object will only be accessible by your own 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * application; you can only set the mode of the entire directory, not 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of individual files. 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name Name of the directory to retrieve. This is a directory 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that is created as part of your application data. 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default operation, {@link #MODE_WORLD_READABLE} and 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #MODE_WORLD_WRITEABLE} to control permissions. 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns a File object for the requested directory. The directory 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will have been created if it does not already exist. 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openFileOutput(String, int) 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract File getDir(String name, int mode); 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Open a new private SQLiteDatabase associated with this Context's 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * application package. Create the database file if it doesn't exist. 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name (unique in the application package) of the database. 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * default operation, {@link #MODE_WORLD_READABLE} 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and {@link #MODE_WORLD_WRITEABLE} to control permissions. 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param factory An optional factory class that is called to instantiate a 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor when query is called. 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The contents of a newly created database with the given name. 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws android.database.sqlite.SQLiteException if the database file could not be opened. 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_PRIVATE 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_READABLE 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #MODE_WORLD_WRITEABLE 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #deleteDatabase 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract SQLiteDatabase openOrCreateDatabase(String name, 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode, CursorFactory factory); 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Delete an existing private SQLiteDatabase associated with this Context's 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * application package. 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name (unique in the application package) of the 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * database. 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if the database was successfully deleted; else false. 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openOrCreateDatabase 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract boolean deleteDatabase(String name); 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the absolute path on the filesystem where a database created with 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #openOrCreateDatabase} is stored. 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name of the database for which you would like to get 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * its path. 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns an absolute path to the given database. 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openOrCreateDatabase 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract File getDatabasePath(String name); 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns an array of strings naming the private databases associated with 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this Context's application package. 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Array of strings naming the private databases. 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #openOrCreateDatabase 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #deleteDatabase 6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract String[] databaseList(); 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6294c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn * @deprecated Use {@link android.app.WallpaperManager#getDrawable 6308cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * WallpaperManager.get()} instead. 6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6324a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn @Deprecated 6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Drawable getWallpaper(); 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6364c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn * @deprecated Use {@link android.app.WallpaperManager#peekDrawable 6378cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * WallpaperManager.peek()} instead. 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6394a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn @Deprecated 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Drawable peekWallpaper(); 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6438cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * @deprecated Use {@link android.app.WallpaperManager#getDesiredMinimumWidth() 6448cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * WallpaperManager.getDesiredMinimumWidth()} instead. 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6464a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn @Deprecated 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int getWallpaperDesiredMinimumWidth(); 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6508cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * @deprecated Use {@link android.app.WallpaperManager#getDesiredMinimumHeight() 6518cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * WallpaperManager.getDesiredMinimumHeight()} instead. 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6534a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn @Deprecated 6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int getWallpaperDesiredMinimumHeight(); 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6574c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn * @deprecated Use {@link android.app.WallpaperManager#setBitmap(Bitmap) 6588cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * WallpaperManager.set()} instead. 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6604a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn @Deprecated 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void setWallpaper(Bitmap bitmap) throws IOException; 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6644c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn * @deprecated Use {@link android.app.WallpaperManager#setStream(InputStream) 6658cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * WallpaperManager.set()} instead. 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6674a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn @Deprecated 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void setWallpaper(InputStream data) throws IOException; 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6718cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * @deprecated Use {@link android.app.WallpaperManager#clear 6728cc6a5026aeb5cf9cc36529426fe0cc66714f5fbDianne Hackborn * WallpaperManager.clear()} instead. 6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6744a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn @Deprecated 6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void clearWallpaper() throws IOException; 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Launch a new activity. You will not receive any information about when 6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the activity exits. 6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Note that if this method is being called from outside of an 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.Activity} Context, then the Intent must include 6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the {@link Intent#FLAG_ACTIVITY_NEW_TASK} launch flag. This is because, 6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * without being started from an existing Activity, there is no existing 6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * task in which to place the new activity and thus it needs to be placed 6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in its own separate task. 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method throws {@link ActivityNotFoundException} 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if there was no Activity found to run the given Intent. 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The description of the activity to start. 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws ActivityNotFoundException 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see PackageManager#resolveActivity 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void startActivity(Intent intent); 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 700fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * Like {@link #startActivity(Intent)}, but taking a IntentSender 701fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * to start. If the IntentSender is for an activity, that activity will be started 702ae22c05b91d1e7a458066792eb5cfc0974c1be9eDianne Hackborn * as if you had called the regular {@link #startActivity(Intent)} 703fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * here; otherwise, its associated action will be executed (such as 704fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * sending a broadcast) as if you had called 705fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * {@link IntentSender#sendIntent IntentSender.sendIntent} on it. 7064b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 707fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * @param intent The IntentSender to launch. 708fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * @param fillInIntent If non-null, this will be provided as the 709fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * intent parameter to {@link IntentSender#sendIntent}. 710fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * @param flagsMask Intent flags in the original IntentSender that you 711fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * would like to change. 712fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * @param flagsValues Desired values for any bits set in 713fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * <var>flagsMask</var> 714fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn * @param extraFlags Always set to 0. 715fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn */ 716fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn public abstract void startIntentSender(IntentSender intent, 717fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags) 718fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn throws IntentSender.SendIntentException; 719fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn 720fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn /** 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Broadcast the given intent to all interested BroadcastReceivers. This 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * call is asynchronous; it returns immediately, and you will continue 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * executing while the receivers are run. No results are propagated from 7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * receivers and receivers can not abort the broadcast. If you want 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to allow receivers to propagate results or abort the broadcast, you must 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * send an ordered broadcast using 7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #sendOrderedBroadcast(Intent, String)}. 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts. 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The Intent to broadcast; all receivers matching this 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent will receive the broadcast. 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.content.BroadcastReceiver 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerReceiver 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast(Intent, String) 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendOrderedBroadcast(Intent, String) 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle) 7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void sendBroadcast(Intent intent); 7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Broadcast the given intent to all interested BroadcastReceivers, allowing 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * an optional required permission to be enforced. This 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * call is asynchronous; it returns immediately, and you will continue 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * executing while the receivers are run. No results are propagated from 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * receivers and receivers can not abort the broadcast. If you want 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to allow receivers to propagate results or abort the broadcast, you must 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * send an ordered broadcast using 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #sendOrderedBroadcast(Intent, String)}. 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts. 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The Intent to broadcast; all receivers matching this 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent will receive the broadcast. 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param receiverPermission (optional) String naming a permissions that 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a receiver must hold in order to receive your broadcast. 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If null, no permission is required. 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.content.BroadcastReceiver 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerReceiver 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast(Intent) 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendOrderedBroadcast(Intent, String) 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle) 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void sendBroadcast(Intent intent, 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String receiverPermission); 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Broadcast the given intent to all interested BroadcastReceivers, delivering 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * them one at a time to allow more preferred receivers to consume the 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * broadcast before it is delivered to less preferred receivers. This 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * call is asynchronous; it returns immediately, and you will continue 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * executing while the receivers are run. 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts. 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The Intent to broadcast; all receivers matching this 7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent will receive the broadcast. 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param receiverPermission (optional) String naming a permissions that 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a receiver must hold in order to receive your broadcast. 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If null, no permission is required. 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.content.BroadcastReceiver 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerReceiver 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast(Intent) 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle) 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void sendOrderedBroadcast(Intent intent, 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String receiverPermission); 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Version of {@link #sendBroadcast(Intent)} that allows you to 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * receive data back from the broadcast. This is accomplished by 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * supplying your own BroadcastReceiver when calling, which will be 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * treated as a final receiver at the end of the broadcast -- its 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link BroadcastReceiver#onReceive} method will be called with 798efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * the result values collected from the other receivers. The broadcast will 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be serialized in the same way as calling 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #sendOrderedBroadcast(Intent, String)}. 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Like {@link #sendBroadcast(Intent)}, this method is 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * asynchronous; it will return before 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * resultReceiver.onReceive() is called. 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts. 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The Intent to broadcast; all receivers matching this 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent will receive the broadcast. 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param receiverPermission String naming a permissions that 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a receiver must hold in order to receive your broadcast. 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If null, no permission is required. 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param resultReceiver Your own BroadcastReceiver to treat as the final 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * receiver of the broadcast. 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param scheduler A custom Handler with which to schedule the 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * resultReceiver callback; if null it will be 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * scheduled in the Context's main thread. 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param initialCode An initial value for the result code. Often 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Activity.RESULT_OK. 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param initialData An initial value for the result data. Often 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * null. 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param initialExtras An initial value for the result extras. Often 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * null. 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast(Intent) 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast(Intent, String) 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendOrderedBroadcast(Intent, String) 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendStickyBroadcast(Intent) 829efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see #sendStickyOrderedBroadcast(Intent, BroadcastReceiver, Handler, int, String, Bundle) 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.content.BroadcastReceiver 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerReceiver 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.Activity#RESULT_OK 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void sendOrderedBroadcast(Intent intent, 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String receiverPermission, BroadcastReceiver resultReceiver, 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler scheduler, int initialCode, String initialData, 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle initialExtras); 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Perform a {@link #sendBroadcast(Intent)} that is "sticky," meaning the 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent you are sending stays around after the broadcast is complete, 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * so that others can quickly retrieve that data through the return 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * value of {@link #registerReceiver(BroadcastReceiver, IntentFilter)}. In 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * all other ways, this behaves the same as 8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #sendBroadcast(Intent)}. 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>You must hold the {@link android.Manifest.permission#BROADCAST_STICKY} 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission in order to use this API. If you do not hold that 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission, {@link SecurityException} will be thrown. 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The Intent to broadcast; all receivers matching this 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent will receive the broadcast, and the Intent will be held to 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be re-broadcast to future receivers. 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast(Intent) 856efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see #sendStickyOrderedBroadcast(Intent, BroadcastReceiver, Handler, int, String, Bundle) 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void sendStickyBroadcast(Intent intent); 8594b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 860efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn /** 861efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * Version of {@link #sendStickyBroadcast} that allows you to 862efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * receive data back from the broadcast. This is accomplished by 863efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * supplying your own BroadcastReceiver when calling, which will be 864efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * treated as a final receiver at the end of the broadcast -- its 865efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * {@link BroadcastReceiver#onReceive} method will be called with 866efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * the result values collected from the other receivers. The broadcast will 867efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * be serialized in the same way as calling 868efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * {@link #sendOrderedBroadcast(Intent, String)}. 869efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * 870efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * <p>Like {@link #sendBroadcast(Intent)}, this method is 871efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * asynchronous; it will return before 872efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * resultReceiver.onReceive() is called. Note that the sticky data 873efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * stored is only the data you initially supply to the broadcast, not 874efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * the result of any changes made by the receivers. 875efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * 876efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts. 877efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * 878efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @param intent The Intent to broadcast; all receivers matching this 879efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * Intent will receive the broadcast. 880efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @param resultReceiver Your own BroadcastReceiver to treat as the final 881efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * receiver of the broadcast. 882efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @param scheduler A custom Handler with which to schedule the 883efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * resultReceiver callback; if null it will be 884efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * scheduled in the Context's main thread. 885efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @param initialCode An initial value for the result code. Often 886efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * Activity.RESULT_OK. 887efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @param initialData An initial value for the result data. Often 888efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * null. 889efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @param initialExtras An initial value for the result extras. Often 890efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * null. 891efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * 892efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see #sendBroadcast(Intent) 893efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see #sendBroadcast(Intent, String) 894efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see #sendOrderedBroadcast(Intent, String) 895efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see #sendStickyBroadcast(Intent) 896efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see android.content.BroadcastReceiver 897efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see #registerReceiver 898efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn * @see android.app.Activity#RESULT_OK 899efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn */ 900efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn public abstract void sendStickyOrderedBroadcast(Intent intent, 901efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn BroadcastReceiver resultReceiver, 902efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn Handler scheduler, int initialCode, String initialData, 903efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn Bundle initialExtras); 904efa199f016985b0a9d0471e42c803ee9f7941f0eDianne Hackborn 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Remove the data previously sent with {@link #sendStickyBroadcast}, 9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * so that it is as if the sticky broadcast had never happened. 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>You must hold the {@link android.Manifest.permission#BROADCAST_STICKY} 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission in order to use this API. If you do not hold that 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission, {@link SecurityException} will be thrown. 9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param intent The Intent that was previously broadcast. 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendStickyBroadcast 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void removeStickyBroadcast(Intent intent); 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 921a34df8a2ba450b2c2ad83ccbbac30b80e2706bb2Chris Tate * Register a BroadcastReceiver to be run in the main activity thread. The 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <var>receiver</var> will be called with any broadcast Intent that 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * matches <var>filter</var>, in the main application thread. 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>The system may broadcast Intents that are "sticky" -- these stay 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * around after the broadcast as finished, to be sent to any later 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * registrations. If your IntentFilter matches one of these sticky 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intents, that Intent will be returned by this function 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <strong>and</strong> sent to your <var>receiver</var> as if it had just 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * been broadcast. 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>There may be multiple sticky Intents that match <var>filter</var>, 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in which case each of these will be sent to <var>receiver</var>. In 9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this case, only one of these can be returned directly by the function; 9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * which of these that is returned is arbitrarily decided by the system. 9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If you know the Intent your are registering for is sticky, you can 9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * supply null for your <var>receiver</var>. In this case, no receiver is 9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * registered -- the function simply returns the sticky Intent that 9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * matches <var>filter</var>. In the case of multiple matches, the same 9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * rules as described above apply. 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts. 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 945a34df8a2ba450b2c2ad83ccbbac30b80e2706bb2Chris Tate * <p class="note">Note: this method <em>cannot be called from a 946a34df8a2ba450b2c2ad83ccbbac30b80e2706bb2Chris Tate * {@link BroadcastReceiver} component;</em> that is, from a BroadcastReceiver 947a34df8a2ba450b2c2ad83ccbbac30b80e2706bb2Chris Tate * that is declared in an application's manifest. It is okay, however, to call 948a34df8a2ba450b2c2ad83ccbbac30b80e2706bb2Chris Tate * this method from another BroadcastReceiver that has itself been registered 949a34df8a2ba450b2c2ad83ccbbac30b80e2706bb2Chris Tate * at run time with {@link #registerReceiver}, since the lifetime of such a 950a34df8a2ba450b2c2ad83ccbbac30b80e2706bb2Chris Tate * registered BroadcastReceiver is tied to the object that registered it.</p> 9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param receiver The BroadcastReceiver to handle the broadcast. 9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param filter Selects the Intent broadcasts to be received. 9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The first sticky intent found that matches <var>filter</var>, 9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there are none. 9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler) 9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast 9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterReceiver 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Intent registerReceiver(BroadcastReceiver receiver, 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IntentFilter filter); 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register to receive intent broadcasts, to run in the context of 9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <var>scheduler</var>. See 9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #registerReceiver(BroadcastReceiver, IntentFilter)} for more 9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * information. This allows you to enforce permissions on who can 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * broadcast intents to your receiver, or have the receiver run in 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a different thread than the main application thread. 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts. 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param receiver The BroadcastReceiver to handle the broadcast. 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param filter Selects the Intent broadcasts to be received. 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param broadcastPermission String naming a permissions that a 9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * broadcaster must hold in order to send an Intent to you. If null, 9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no permission is required. 9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param scheduler Handler identifying the thread that will receive 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Intent. If null, the main thread of the process will be used. 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The first sticky intent found that matches <var>filter</var>, 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null if there are none. 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerReceiver(BroadcastReceiver, IntentFilter) 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #sendBroadcast 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterReceiver 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Intent registerReceiver(BroadcastReceiver receiver, 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IntentFilter filter, 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String broadcastPermission, 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler scheduler); 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unregister a previously registered BroadcastReceiver. <em>All</em> 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * filters that have been registered for this BroadcastReceiver will be 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * removed. 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param receiver The BroadcastReceiver to unregister. 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerReceiver 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void unregisterReceiver(BroadcastReceiver receiver); 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Request that a given application service be started. The Intent 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can either contain the complete class name of a specific service 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * implementation to start, or an abstract definition through the 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * action and other fields of the kind of service to start. If this service 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is not already running, it will be instantiated and started (creating a 10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * process for it if needed); if it is running then it remains running. 10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Every call to this method will result in a corresponding call to 10154b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * the target service's {@link android.app.Service#onStartCommand} method, 10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * with the <var>intent</var> given here. This provides a convenient way 10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to submit jobs to a service without having to bind and call on to its 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * interface. 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Using startService() overrides the default service lifetime that is 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * managed by {@link #bindService}: it requires the service to remain 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * running until {@link #stopService} is called, regardless of whether 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * any clients are connected to it. Note that calls to startService() 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * are not nesting: no matter how many times you call startService(), 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a single call to {@link #stopService} will stop it. 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>The system attempts to keep running services around as much as 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * possible. The only time they should be stopped is if the current 10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * foreground application is using so many resources that the service needs 10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to be killed. If any errors happen in the service's process, it will 10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * automatically be restarted. 10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This function will throw {@link SecurityException} if you do not 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * have permission to start the given service. 10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param service Identifies the service to be started. The Intent may 10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * specify either an explicit component name to start, or a logical 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * description (action, category, etc) to match an 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link IntentFilter} published by a service. Additional values 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * may be included in the Intent extras to supply arguments along with 10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this specific start call. 10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If the service is being started or is already running, the 10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link ComponentName} of the actual service that was started is 10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * returned; else if the service does not exist null is returned. 10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws SecurityException 10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #stopService 10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #bindService 10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract ComponentName startService(Intent service); 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Request that a given application service be stopped. If the service is 10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not running, nothing happens. Otherwise it is stopped. Note that calls 10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to startService() are not counted -- this stops the service no matter 10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * how many times it was started. 10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Note that if a stopped service still has {@link ServiceConnection} 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * objects bound to it with the {@link #BIND_AUTO_CREATE} set, it will 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not be destroyed until all of these bindings are removed. See 10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the {@link android.app.Service} documentation for more details on a 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * service's lifecycle. 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This function will throw {@link SecurityException} if you do not 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * have permission to stop the given service. 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param service Description of the service to be stopped. The Intent may 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * specify either an explicit component name to start, or a logical 10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * description (action, category, etc) to match an 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link IntentFilter} published by a service. 10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If there is a service matching the given Intent that is already 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * running, then it is stopped and true is returned; else false is returned. 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws SecurityException 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #startService 10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract boolean stopService(Intent service); 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Connect to an application service, creating it if needed. This defines 10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a dependency between your application and the service. The given 10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <var>conn</var> will receive the service object when its created and be 10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * told if it dies and restarts. The service will be considered required 10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by the system only for as long as the calling context exists. For 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * example, if this Context is an Activity that is stopped, the service will 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * not be required to continue running until the Activity is resumed. 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This function will throw {@link SecurityException} if you do not 10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * have permission to bind to the given service. 10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p class="note">Note: this method <em>can not be called from an 10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link BroadcastReceiver} component</em>. A pattern you can use to 10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * communicate from an BroadcastReceiver to a Service is to call 10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #startService} with the arguments containing the command to be 10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * sent, with the service calling its 11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.Service#stopSelf(int)} method when done executing 11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that command. See the API demo App/Service/Service Start Arguments 11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Controller for an illustration of this. It is okay, however, to use 11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this method from an BroadcastReceiver that has been registered with 11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #registerReceiver}, since the lifetime of this BroadcastReceiver 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is tied to another object (the one that registered it).</p> 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param service Identifies the service to connect to. The Intent may 11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * specify either an explicit component name, or a logical 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * description (action, category, etc) to match an 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link IntentFilter} published by a service. 11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param conn Receives information as the service is started and stopped. 11124b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * @param flags Operation options for the binding. May be 0, 11134b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * {@link #BIND_AUTO_CREATE}, {@link #BIND_DEBUG_UNBIND}, or 11144b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * {@link #BIND_NOT_FOREGROUND}. 11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return If you have successfully bound to the service, true is returned; 11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * false is returned if the connection is not made so you will not 11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * receive the service object. 11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws SecurityException 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unbindService 11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #startService 11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #BIND_AUTO_CREATE 11244b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * @see #BIND_DEBUG_UNBIND 11254b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * @see #BIND_NOT_FOREGROUND 11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract boolean bindService(Intent service, ServiceConnection conn, 11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int flags); 11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disconnect from an application service. You will no longer receive 11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * calls as the service is restarted, and the service is now allowed to 11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * stop at any time. 11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param conn The connection interface previously supplied to 11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * bindService(). 11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #bindService 11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void unbindService(ServiceConnection conn); 11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Start executing an {@link android.app.Instrumentation} class. The given 11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Instrumentation component will be run by killing its target application 11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (if currently running), starting the target process, instantiating the 11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instrumentation component, and then letting it drive the application. 11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This function is not synchronous -- it returns as soon as the 11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instrumentation has started and while it is running. 11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Instrumentation is normally only allowed to run against a package 11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that is either unsigned or signed with a signature that the 11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the instrumentation package is also signed with (ensuring the target 11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * trusts the instrumentation). 11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param className Name of the Instrumentation component to be run. 11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param profileFile Optional path to write profiling data as the 11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instrumentation runs, or null for no profiling. 11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param arguments Additional optional arguments to pass to the 11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instrumentation, or null. 11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns true if the instrumentation was successfully started, 11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * else false if it could not be found. 11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract boolean startInstrumentation(ComponentName className, 11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String profileFile, Bundle arguments); 11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return the handle to a system-level service by name. The class of the 11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * returned object varies by the requested name. Currently available names 11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * are: 11724b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dl> 11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #WINDOW_SERVICE} ("window") 11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> The top-level window manager in which you can place custom 11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * windows. The returned object is a {@link android.view.WindowManager}. 11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #LAYOUT_INFLATER_SERVICE} ("layout_inflater") 11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.view.LayoutInflater} for inflating layout resources 11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in this context. 11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #ACTIVITY_SERVICE} ("activity") 11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.app.ActivityManager} for interacting with the 11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * global activity state of the system. 11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #POWER_SERVICE} ("power") 11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.os.PowerManager} for controlling power 11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * management. 11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #ALARM_SERVICE} ("alarm") 11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.app.AlarmManager} for receiving intents at the 11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * time of your choosing. 11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #NOTIFICATION_SERVICE} ("notification") 11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.app.NotificationManager} for informing the user 11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of background events. 11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #KEYGUARD_SERVICE} ("keyguard") 11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.app.KeyguardManager} for controlling keyguard. 11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #LOCATION_SERVICE} ("location") 11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.location.LocationManager} for controlling location 11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (e.g., GPS) updates. 11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #SEARCH_SERVICE} ("search") 11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.app.SearchManager} for handling search. 11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #VIBRATOR_SERVICE} ("vibrator") 12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.os.Vibrator} for interacting with the vibrator 12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * hardware. 12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #CONNECTIVITY_SERVICE} ("connection") 12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.net.ConnectivityManager ConnectivityManager} for 12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * handling management of network connections. 12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #WIFI_SERVICE} ("wifi") 12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> A {@link android.net.wifi.WifiManager WifiManager} for management of 12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Wi-Fi connectivity. 12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dt> {@link #INPUT_METHOD_SERVICE} ("input_method") 12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <dd> An {@link android.view.inputmethod.InputMethodManager InputMethodManager} 12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for management of input methods. 121153332883543868fb83e111a07306368b7772b340Tobias Haamel * <dt> {@link #UI_MODE_SERVICE} ("uimode") 121253332883543868fb83e111a07306368b7772b340Tobias Haamel * <dd> An {@link android.app.UiModeManager} for controlling UI modes. 12137083c42fff819b2c4949984a461bd54e9fa822a3Steve Howard * <dt> {@link #DOWNLOAD_SERVICE} ("download") 121431fd85f39b554e09b2e6c1c2ccf5c186859880faSteve Howard * <dd> A {@link android.app.DownloadManager} for requesting HTTP downloads 12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </dl> 12164b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Note: System services obtained via this API may be closely associated with 12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the Context in which they are obtained from. In general, do not share the 12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * service objects between various different contexts (Activities, Applications, 12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Services, Providers, etc.) 12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param name The name of the desired service. 12234b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return The service or null if the name does not exist. 12254b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #WINDOW_SERVICE 12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.view.WindowManager 12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #LAYOUT_INFLATER_SERVICE 12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.view.LayoutInflater 12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #ACTIVITY_SERVICE 12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.ActivityManager 12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #POWER_SERVICE 12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.os.PowerManager 12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #ALARM_SERVICE 12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.AlarmManager 12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #NOTIFICATION_SERVICE 12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.NotificationManager 12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #KEYGUARD_SERVICE 12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.KeyguardManager 12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #LOCATION_SERVICE 12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.location.LocationManager 12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #SEARCH_SERVICE 12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.SearchManager 12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #SENSOR_SERVICE 12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.hardware.SensorManager 1246c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat * @see #STORAGE_SERVICE 1247b104340496e3a531e26c8f428c808eca0e039f50San Mehat * @see android.os.storage.StorageManager 12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #VIBRATOR_SERVICE 12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.os.Vibrator 12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #CONNECTIVITY_SERVICE 12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.net.ConnectivityManager 12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #WIFI_SERVICE 12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.net.wifi.WifiManager 12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #AUDIO_SERVICE 12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.media.AudioManager 12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #TELEPHONY_SERVICE 12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.telephony.TelephonyManager 12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #INPUT_METHOD_SERVICE 12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.view.inputmethod.InputMethodManager 126053332883543868fb83e111a07306368b7772b340Tobias Haamel * @see #UI_MODE_SERVICE 126153332883543868fb83e111a07306368b7772b340Tobias Haamel * @see android.app.UiModeManager 12627083c42fff819b2c4949984a461bd54e9fa822a3Steve Howard * @see #DOWNLOAD_SERVICE 126331fd85f39b554e09b2e6c1c2ccf5c186859880faSteve Howard * @see android.app.DownloadManager 12649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Object getSystemService(String name); 12669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.os.PowerManager} for controlling power management, 12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * including "wake locks," which let you keep the device on while 12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you're running long tasks. 12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String POWER_SERVICE = "power"; 12744b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.view.WindowManager} for accessing the system's window 12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * manager. 12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.view.WindowManager 12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String WINDOW_SERVICE = "window"; 12844b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.view.LayoutInflater} for inflating layout resources in this 12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * context. 12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.view.LayoutInflater 12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String LAYOUT_INFLATER_SERVICE = "layout_inflater"; 12944b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 1297603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana * {@link android.accounts.AccountManager} for receiving intents at a 1298603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana * time of your choosing. 1299603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana * 1300603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana * @see #getSystemService 1301603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana * @see android.accounts.AccountManager 1302603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana */ 1303603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana public static final String ACCOUNT_SERVICE = "account"; 13044b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 1305603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana /** 1306603073430bbcb1bd29db7afb9b14e2732ad589fbFred Quintana * Use with {@link #getSystemService} to retrieve a 13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.ActivityManager} for interacting with the global 13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * system state. 13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.ActivityManager 13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String ACTIVITY_SERVICE = "activity"; 13144b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.AlarmManager} for receiving intents at a 13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * time of your choosing. 13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.AlarmManager 13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String ALARM_SERVICE = "alarm"; 13244b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.NotificationManager} for informing the user of 13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * background events. 13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.NotificationManager 13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String NOTIFICATION_SERVICE = "notification"; 13344b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 133775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.view.accessibility.AccessibilityManager} for giving the user 133875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * feedback for UI events through the registered event listeners. 133975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 134075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #getSystemService 134175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see android.view.accessibility.AccessibilityManager 134275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 134375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final String ACCESSIBILITY_SERVICE = "accessibility"; 13444b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 134575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 134675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Use with {@link #getSystemService} to retrieve a 13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.NotificationManager} for controlling keyguard. 13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.KeyguardManager 13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String KEYGUARD_SERVICE = "keyguard"; 13534b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a {@link 13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.location.LocationManager} for controlling location 13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * updates. 13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.location.LocationManager 13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String LOCATION_SERVICE = "location"; 13634b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a {@link 13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.app.SearchManager} for handling searches. 13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.SearchManager 13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String SEARCH_SERVICE = "search"; 13724b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 13739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a {@link 13759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.hardware.SensorManager} for accessing sensors. 13769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.hardware.SensorManager 13799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String SENSOR_SERVICE = "sensor"; 13814b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 13829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1383c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat * Use with {@link #getSystemService} to retrieve a {@link 138402c8730c1bf19daf48bec8c6995df676a00a73b1Kenny Root * android.os.storage.StorageManager} for accessing system storage 1385c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat * functions. 1386c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat * 1387c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat * @see #getSystemService 1388b104340496e3a531e26c8f428c808eca0e039f50San Mehat * @see android.os.storage.StorageManager 1389c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat */ 1390c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat public static final String STORAGE_SERVICE = "storage"; 1391c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat 1392c9d8175f40691228e25f0dd924cc2453a6f08e10San Mehat /** 13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 13949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * com.android.server.WallpaperService for accessing wallpapers. 13959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 13979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String WALLPAPER_SERVICE = "wallpaper"; 13994b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 14009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a {@link 14029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.os.Vibrator} for interacting with the vibration hardware. 14039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.os.Vibrator 14069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String VIBRATOR_SERVICE = "vibrator"; 14089e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt 14099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a {@link 14119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.app.StatusBarManager} for interacting with the status bar. 14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.app.StatusBarManager 14159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 14169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String STATUS_BAR_SERVICE = "statusbar"; 14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a {@link 14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.net.ConnectivityManager} for handling management of 14229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * network connections. 14239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.net.ConnectivityManager 14269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String CONNECTIVITY_SERVICE = "connectivity"; 14289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a {@link 14319e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt * android.net.ThrottleManager} for handling management of 14329e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt * throttling. 14339e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt * 14349e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt * @hide 14359e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt * @see #getSystemService 14369e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt * @see android.net.ThrottleManager 14379e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt */ 14389e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt public static final String THROTTLE_SERVICE = "throttle"; 14399e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt 14409e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt /** 14419e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt * Use with {@link #getSystemService} to retrieve a {@link 1442d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat * android.net.NetworkManagementService} for handling management of 1443d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat * system network services 1444d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat * 1445d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat * @hide 1446d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat * @see #getSystemService 1447d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat * @see android.net.NetworkManagementService 1448d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat */ 1449d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat public static final String NETWORKMANAGEMENT_SERVICE = "network_management"; 1450d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat 1451d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat /** 1452d1df8ac6d076ef15ba8857211da2e447b6505fb3San Mehat * Use with {@link #getSystemService} to retrieve a {@link 14539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.net.wifi.WifiManager} for handling management of 14549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Wi-Fi access. 14559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.net.wifi.WifiManager 14589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String WIFI_SERVICE = "wifi"; 14604b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 14619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 14639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.media.AudioManager} for handling management of volume, 14649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * ringer modes and audio routing. 14654b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 14669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.media.AudioManager 14689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String AUDIO_SERVICE = "audio"; 14704b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 14719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 14739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.telephony.TelephonyManager} for handling management the 14749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * telephony features of the device. 14754b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 14769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.telephony.TelephonyManager 14789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String TELEPHONY_SERVICE = "phone"; 14809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 14839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.text.ClipboardManager} for accessing and modifying 14849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the contents of the global clipboard. 14854b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 14869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.text.ClipboardManager 14889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String CLIPBOARD_SERVICE = "clipboard"; 14909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14924b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * Use with {@link #getSystemService} to retrieve a 14939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.view.inputmethod.InputMethodManager} for accessing input 14949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * methods. 14959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 14979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String INPUT_METHOD_SERVICE = "input_method"; 14999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 15009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 15019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use with {@link #getSystemService} to retrieve a 1502e38d58bf890c03eb034afd18c62c730c7d735f1cDan Egnor * {@link android.appwidget.AppWidgetManager} for accessing AppWidgets. 15039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 15049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 15059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getSystemService 15069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1507c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project public static final String APPWIDGET_SERVICE = "appwidget"; 1508952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor 15099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1510487529a70cd1479ae8d6bbfb356be7e72542c185Christopher Tate * Use with {@link #getSystemService} to retrieve an 15114528186e0d65fc68ef0dd1941aa2ac8aefcd55a3Christopher Tate * {@link android.app.backup.IBackupManager IBackupManager} for communicating 1512487529a70cd1479ae8d6bbfb356be7e72542c185Christopher Tate * with the backup mechanism. 15137f2054392e9957d3ba8579ef08c29cfb27df564eDianne Hackborn * @hide 15144b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 1515487529a70cd1479ae8d6bbfb356be7e72542c185Christopher Tate * @see #getSystemService 1516487529a70cd1479ae8d6bbfb356be7e72542c185Christopher Tate */ 1517487529a70cd1479ae8d6bbfb356be7e72542c185Christopher Tate public static final String BACKUP_SERVICE = "backup"; 1518952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor 1519952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor /** 1520952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor * Use with {@link #getSystemService} to retrieve a 15211337b012f8e18c725b1ec17b456dc57a084d594dDan Egnor * {@link android.os.DropBoxManager} instance for recording 1522952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor * diagnostic logs. 1523952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor * @see #getSystemService 1524952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor */ 1525952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor public static final String DROPBOX_SERVICE = "dropbox"; 1526952402704a175ba27f6c89dff1ada634c5ce5626Dan Egnor 1527487529a70cd1479ae8d6bbfb356be7e72542c185Christopher Tate /** 15284b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * Use with {@link #getSystemService} to retrieve a 152987bba1ee14279bb14a28d42e27c4ef66d9967bf8Dianne Hackborn * {@link android.app.admin.DevicePolicyManager} for working with global 1530d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * device policy management. 1531d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * 1532d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * @see #getSystemService 1533d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn */ 1534d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn public static final String DEVICE_POLICY_SERVICE = "device_policy"; 1535d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn 1536d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn /** 153753332883543868fb83e111a07306368b7772b340Tobias Haamel * Use with {@link #getSystemService} to retrieve a 153853332883543868fb83e111a07306368b7772b340Tobias Haamel * {@link android.app.UiModeManager} for controlling UI modes. 153953332883543868fb83e111a07306368b7772b340Tobias Haamel * 154053332883543868fb83e111a07306368b7772b340Tobias Haamel * @see #getSystemService 154153332883543868fb83e111a07306368b7772b340Tobias Haamel */ 154253332883543868fb83e111a07306368b7772b340Tobias Haamel public static final String UI_MODE_SERVICE = "uimode"; 154353332883543868fb83e111a07306368b7772b340Tobias Haamel 154453332883543868fb83e111a07306368b7772b340Tobias Haamel /** 1545a2709360665f77ed8bebccb2df86f08e8c83a701Steve Howard * Use with {@link #getSystemService} to retrieve a 154631fd85f39b554e09b2e6c1c2ccf5c186859880faSteve Howard * {@link android.app.DownloadManager} for requesting HTTP downloads. 1547a2709360665f77ed8bebccb2df86f08e8c83a701Steve Howard * 1548a2709360665f77ed8bebccb2df86f08e8c83a701Steve Howard * @see #getSystemService 1549a2709360665f77ed8bebccb2df86f08e8c83a701Steve Howard */ 1550a2709360665f77ed8bebccb2df86f08e8c83a701Steve Howard public static final String DOWNLOAD_SERVICE = "download"; 1551a2709360665f77ed8bebccb2df86f08e8c83a701Steve Howard 1552a2709360665f77ed8bebccb2df86f08e8c83a701Steve Howard /** 15532d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang * Use with {@link #getSystemService} to retrieve a 155450b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly * {@link android.nfc.NfcManager} for using NFC. 155550b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly * 155650b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly * @see #getSystemService 155750b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly */ 155850b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly public static final String NFC_SERVICE = "nfc"; 155950b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly 156050b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly /** 156150b4d8f643f31b37e9872f562fb869059cf79c8aNick Pelly * Use with {@link #getSystemService} to retrieve a 15622d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang * {@link android.net.sip.SipManager} for accessing the SIP related service. 15632d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang * 15642d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang * @see #getSystemService 15652d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang */ 15662d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang /** @hide */ 15672d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang public static final String SIP_SERVICE = "sip"; 15682d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang 15692d94231ef91c732f649ff7af9520ee9eac441b16Chung-yih Wang /** 157040bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood * Use with {@link #getSystemService} to retrieve a {@link 157140bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood * android.hardware.usb.UsbManager} for access to USB devices (as a USB host) 157240bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood * and for controlling this device's behavior as a USB device. 157340bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood * 157440bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood * @see #getSystemService 157540bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood * @see android.harware.usb.UsbManager 157640bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood * @hide 157740bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood */ 157840bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood public static final String USB_SERVICE = "usb"; 157940bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood 158040bbf9295d5245d3917629ce15f7b37670aef1acMike Lockwood /** 15819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Determine whether the given permission is allowed for a particular 15829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * process and user ID running in the system. 15839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 15849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param permission The name of the permission being checked. 15859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pid The process ID being checked against. Must be > 0. 15869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uid The user ID being checked against. A uid of 0 is the root 15879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * user, which will pass every permission check. 15889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 15899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns {@link PackageManager#PERMISSION_GRANTED} if the given 15909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * pid/uid is allowed that permission, or 15919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#PERMISSION_DENIED} if it is not. 15929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 15939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see PackageManager#checkPermission(String, String) 15949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingPermission 15959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 15969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int checkPermission(String permission, int pid, int uid); 15979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 15989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 15999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Determine whether the calling process of an IPC you are handling has been 16009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * granted a particular permission. This is basically the same as calling 16019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #checkPermission(String, int, int)} with the pid and uid returned 16029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by {@link android.os.Binder#getCallingPid} and 16039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.os.Binder#getCallingUid}. One important difference 16049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is that if you are not currently processing an IPC, this function 16059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will always fail. This is done to protect against accidentally 16069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * leaking permissions; you can use {@link #checkCallingOrSelfPermission} 16079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to avoid this protection. 16089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param permission The name of the permission being checked. 16109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns {@link PackageManager#PERMISSION_GRANTED} if the calling 16129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * pid/uid is allowed that permission, or 16139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#PERMISSION_DENIED} if it is not. 16149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see PackageManager#checkPermission(String, String) 16169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkPermission 16179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingOrSelfPermission 16189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 16199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int checkCallingPermission(String permission); 16209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 16219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 16229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Determine whether the calling process of an IPC <em>or you</em> have been 16239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * granted a particular permission. This is the same as 16249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #checkCallingPermission}, except it grants your own permissions 16259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if you are not currently processing an IPC. Use with care! 16269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param permission The name of the permission being checked. 16289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns {@link PackageManager#PERMISSION_GRANTED} if the calling 16309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * pid/uid is allowed that permission, or 16319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#PERMISSION_DENIED} if it is not. 16329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see PackageManager#checkPermission(String, String) 16349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkPermission 16359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingPermission 16369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 16379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int checkCallingOrSelfPermission(String permission); 16389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 16399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 16409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If the given permission is not allowed for a particular process 16419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and user ID running in the system, throw a {@link SecurityException}. 16429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param permission The name of the permission being checked. 16449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pid The process ID being checked against. Must be > 0. 16459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uid The user ID being checked against. A uid of 0 is the root 16469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * user, which will pass every permission check. 16479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param message A message to include in the exception if it is thrown. 16489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkPermission(String, int, int) 16509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 16519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void enforcePermission( 16529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String permission, int pid, int uid, String message); 16539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 16549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 16559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If the calling process of an IPC you are handling has not been 16569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * granted a particular permission, throw a {@link 16579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SecurityException}. This is basically the same as calling 16589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #enforcePermission(String, int, int, String)} with the 16599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * pid and uid returned by {@link android.os.Binder#getCallingPid} 16609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and {@link android.os.Binder#getCallingUid}. One important 16619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * difference is that if you are not currently processing an IPC, 16629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this function will always throw the SecurityException. This is 16639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * done to protect against accidentally leaking permissions; you 16649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can use {@link #enforceCallingOrSelfPermission} to avoid this 16659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * protection. 16669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param permission The name of the permission being checked. 16689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param message A message to include in the exception if it is thrown. 16699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingPermission(String) 16719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 16729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void enforceCallingPermission( 16739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String permission, String message); 16749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 16759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 16769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If neither you nor the calling process of an IPC you are 16779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * handling has been granted a particular permission, throw a 16789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link SecurityException}. This is the same as {@link 16799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * #enforceCallingPermission}, except it grants your own 16809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permissions if you are not currently processing an IPC. Use 16819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * with care! 16829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param permission The name of the permission being checked. 16849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param message A message to include in the exception if it is thrown. 16859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingOrSelfPermission(String) 16879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 16889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void enforceCallingOrSelfPermission( 16899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String permission, String message); 16909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 16919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 16929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Grant permission to access a specific Uri to another package, regardless 16939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of whether that package has general permission to access the Uri's 16949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * content provider. This can be used to grant specific, temporary 16959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permissions, typically in response to user interaction (such as the 16969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * user opening an attachment that you would like someone else to 16979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * display). 16989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 16999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Normally you should use {@link Intent#FLAG_GRANT_READ_URI_PERMISSION 17009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent.FLAG_GRANT_READ_URI_PERMISSION} or 17019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION 17029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent.FLAG_GRANT_WRITE_URI_PERMISSION} with the Intent being used to 17039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * start an activity instead of this function directly. If you use this 17049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * function directly, you should be sure to call 17059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #revokeUriPermission} when the target should no longer be allowed 17069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to access it. 17079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>To succeed, the content provider owning the Uri must have set the 17099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.R.styleable#AndroidManifestProvider_grantUriPermissions 17109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * grantUriPermissions} attribute in its manifest or included the 17119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.R.styleable#AndroidManifestGrantUriPermission 17129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <grant-uri-permissions>} tag. 17139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param toPackage The package you would like to allow to access the Uri. 17159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The Uri you would like to grant access to. 17169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The desired access modes. Any combination of 17179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION 17189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent.FLAG_GRANT_READ_URI_PERMISSION} or 17199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION 17209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 17219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #revokeUriPermission 17239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 17249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void grantUriPermission(String toPackage, Uri uri, 17259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int modeFlags); 17269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 17279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 17289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Remove all permissions to access a particular content provider Uri 17299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that were previously added with {@link #grantUriPermission}. The given 17309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Uri will match all previously granted Uris that are the same or a 17319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * sub-path of the given Uri. That is, revoking "content://foo/one" will 17329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * revoke both "content://foo/target" and "content://foo/target/sub", but not 17339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * "content://foo". 17349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The Uri you would like to revoke access to. 17369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The desired access modes. Any combination of 17379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION 17389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent.FLAG_GRANT_READ_URI_PERMISSION} or 17399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION 17409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 17419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #grantUriPermission 17439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 17449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void revokeUriPermission(Uri uri, int modeFlags); 17459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 17469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 17479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Determine whether a particular process and user ID has been granted 17489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission to access a specific URI. This only checks for permissions 17499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that have been explicitly granted -- if the given process/uid has 17509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * more general access to the URI's content provider then this check will 17519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * always fail. 17529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The uri that is being checked. 17549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pid The process ID being checked against. Must be > 0. 17559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uid The user ID being checked against. A uid of 0 is the root 17569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * user, which will pass every permission check. 17579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 17589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 17599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 17609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns {@link PackageManager#PERMISSION_GRANTED} if the given 17629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * pid/uid is allowed to access that uri, or 17639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#PERMISSION_DENIED} if it is not. 17649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingUriPermission 17669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 17679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int checkUriPermission(Uri uri, int pid, int uid, int modeFlags); 17689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 17699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 17709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Determine whether the calling process and user ID has been 17719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * granted permission to access a specific URI. This is basically 17729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the same as calling {@link #checkUriPermission(Uri, int, int, 17739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * int)} with the pid and uid returned by {@link 17749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.os.Binder#getCallingPid} and {@link 17759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.os.Binder#getCallingUid}. One important difference is 17769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that if you are not currently processing an IPC, this function 17779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will always fail. 17789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The uri that is being checked. 17809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 17819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 17829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 17839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns {@link PackageManager#PERMISSION_GRANTED} if the caller 17859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is allowed to access that uri, or 17869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#PERMISSION_DENIED} if it is not. 17879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkUriPermission(Uri, int, int, int) 17899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 17909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int checkCallingUriPermission(Uri uri, int modeFlags); 17919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 17929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 17939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Determine whether the calling process of an IPC <em>or you</em> has been granted 17949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission to access a specific URI. This is the same as 17959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #checkCallingUriPermission}, except it grants your own permissions 17969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if you are not currently processing an IPC. Use with care! 17979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 17989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The uri that is being checked. 17999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 18009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 18019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 18029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns {@link PackageManager#PERMISSION_GRANTED} if the caller 18049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is allowed to access that uri, or 18059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#PERMISSION_DENIED} if it is not. 18069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingUriPermission 18089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 18099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int checkCallingOrSelfUriPermission(Uri uri, int modeFlags); 18109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 18129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Check both a Uri and normal permission. This allows you to perform 18139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * both {@link #checkPermission} and {@link #checkUriPermission} in one 18149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * call. 18159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The Uri whose permission is to be checked, or null to not 18179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * do this check. 18189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param readPermission The permission that provides overall read access, 18199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null to not do this check. 18209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param writePermission The permission that provides overall write 18219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * acess, or null to not do this check. 18229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pid The process ID being checked against. Must be > 0. 18239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uid The user ID being checked against. A uid of 0 is the root 18249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * user, which will pass every permission check. 18259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 18269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 18279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 18289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return Returns {@link PackageManager#PERMISSION_GRANTED} if the caller 18309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is allowed to access that uri or holds one of the given permissions, or 18319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link PackageManager#PERMISSION_DENIED} if it is not. 18329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 18339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract int checkUriPermission(Uri uri, String readPermission, 18349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String writePermission, int pid, int uid, int modeFlags); 18359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 18379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If a particular process and user ID has not been granted 18389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission to access a specific URI, throw {@link 18399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SecurityException}. This only checks for permissions that have 18409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * been explicitly granted -- if the given process/uid has more 18419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * general access to the URI's content provider then this check 18429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will always fail. 18439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The uri that is being checked. 18459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pid The process ID being checked against. Must be > 0. 18469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uid The user ID being checked against. A uid of 0 is the root 18479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * user, which will pass every permission check. 18489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 18499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 18509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 18519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param message A message to include in the exception if it is thrown. 18529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkUriPermission(Uri, int, int, int) 18549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 18559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void enforceUriPermission( 18569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri, int pid, int uid, int modeFlags, String message); 18579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 18599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If the calling process and user ID has not been granted 18609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission to access a specific URI, throw {@link 18619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SecurityException}. This is basically the same as calling 18629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #enforceUriPermission(Uri, int, int, int, String)} with 18639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the pid and uid returned by {@link 18649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.os.Binder#getCallingPid} and {@link 18659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * android.os.Binder#getCallingUid}. One important difference is 18669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that if you are not currently processing an IPC, this function 18679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will always throw a SecurityException. 18689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The uri that is being checked. 18709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 18719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 18729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 18739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param message A message to include in the exception if it is thrown. 18749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingUriPermission(Uri, int) 18769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 18779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void enforceCallingUriPermission( 18789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri, int modeFlags, String message); 18799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 18819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If the calling process of an IPC <em>or you</em> has not been 18829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * granted permission to access a specific URI, throw {@link 18839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SecurityException}. This is the same as {@link 18849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * #enforceCallingUriPermission}, except it grants your own 18859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permissions if you are not currently processing an IPC. Use 18869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * with care! 18874b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 18889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The uri that is being checked. 18899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 18909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 18919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 18929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param message A message to include in the exception if it is thrown. 18939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 18949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkCallingOrSelfUriPermission(Uri, int) 18959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 18969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void enforceCallingOrSelfUriPermission( 18979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri, int modeFlags, String message); 18989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 18999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 19009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Enforce both a Uri and normal permission. This allows you to perform 19019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * both {@link #enforcePermission} and {@link #enforceUriPermission} in one 19029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * call. 19034b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 19049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The Uri whose permission is to be checked, or null to not 19059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * do this check. 19069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param readPermission The permission that provides overall read access, 19079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or null to not do this check. 19089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param writePermission The permission that provides overall write 19099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * acess, or null to not do this check. 19109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param pid The process ID being checked against. Must be > 0. 19119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uid The user ID being checked against. A uid of 0 is the root 19129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * user, which will pass every permission check. 19139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param modeFlags The type of access to grant. May be one or both of 19149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION} or 19159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link Intent#FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_WRITE_URI_PERMISSION}. 19169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param message A message to include in the exception if it is thrown. 19179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 19189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #checkUriPermission(Uri, String, String, int, int, int) 19199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 19209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract void enforceUriPermission( 19219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri, String readPermission, String writePermission, 19229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pid, int uid, int modeFlags, String message); 19239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 19259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Flag for use with {@link #createPackageContext}: include the application 19269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * code with the context. This means loading code into the caller's 19279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * process, so that {@link #getClassLoader()} can be used to instantiate 19289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the application's classes. Setting this flags imposes security 19299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * restrictions on what application context you can access; if the 19309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * requested application can not be safely loaded into your process, 19319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * java.lang.SecurityException will be thrown. If this flag is not set, 19329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * there will be no restrictions on the packages that can be loaded, 19339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * but {@link #getClassLoader} will always return the default system 19349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * class loader. 19359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 19369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CONTEXT_INCLUDE_CODE = 0x00000001; 19379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 19399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Flag for use with {@link #createPackageContext}: ignore any security 19409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * restrictions on the Context being requested, allowing it to always 19419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be loaded. For use with {@link #CONTEXT_INCLUDE_CODE} to allow code 19429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to be loaded into a process even when it isn't safe to do so. Use 19439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * with extreme care! 19449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 19459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CONTEXT_IGNORE_SECURITY = 0x00000002; 19464b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main 1947870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy /** 1948870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy * Flag for use with {@link #createPackageContext}: a restricted context may 1949870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy * disable specific features. For instance, a View associated with a restricted 1950870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy * context would ignore particular XML attributes. 1951870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy */ 1952870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy public static final int CONTEXT_RESTRICTED = 0x00000004; 19539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 19559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return a new Context object for the given application name. This 19569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Context is the same as what the named application gets when it is 19579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * launched, containing the same resources and class loader. Each call to 19589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this method returns a new instance of a Context object; Context objects 19599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * are not shared, however they share common state (Resources, ClassLoader, 19609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * etc) so the Context instance itself is fairly lightweight. 19619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 19629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Throws {@link PackageManager.NameNotFoundException} if there is no 19639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * application with the given package name. 19649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 19659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Throws {@link java.lang.SecurityException} if the Context requested 19669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can not be loaded into the caller's process for security reasons (see 19679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #CONTEXT_INCLUDE_CODE} for more information}. 19689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 19699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param packageName Name of the application's package. 19709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flags Option flags, one of {@link #CONTEXT_INCLUDE_CODE} 19719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * or {@link #CONTEXT_IGNORE_SECURITY}. 19729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 19739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A Context for the application. 19749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 19759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws java.lang.SecurityException 19769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws PackageManager.NameNotFoundException if there is no application with 19779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the given package name 19789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 19799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public abstract Context createPackageContext(String packageName, 19809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int flags) throws PackageManager.NameNotFoundException; 1981870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy 1982870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy /** 1983870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy * Indicates whether this Context is restricted. 19844b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 1985870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy * @return True if this Context is restricted, false otherwise. 19864b5da6829aa5e324f5e9414c25d132ba0a9ebeb3Scott Main * 1987870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy * @see #CONTEXT_RESTRICTED 1988870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy */ 1989870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy public boolean isRestricted() { 1990870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy return false; 1991870e09fcd2dfdc12ac318962efd28b0420c562bbRomain Guy } 19929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1993