101e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn/* 201e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * Copyright (C) 2010 The Android Open Source Project 301e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * 401e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 501e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * you may not use this file except in compliance with the License. 601e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * You may obtain a copy of the License at 701e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * 801e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 901e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * 1001e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 1101e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 1201e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1301e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * See the License for the specific language governing permissions and 1401e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * limitations under the License. 1501e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn */ 1601e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn 1701e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackbornpackage android.app; 1801e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn 1901e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackbornimport android.content.pm.IPackageManager; 2001e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn 2101e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn/** 2201e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * Special private access for certain globals related to a process. 2301e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * @hide 2401e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn */ 2501e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackbornpublic class AppGlobals { 2601e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn /** 2701e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * Return the first Application object made in the process. 2801e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * NOTE: Only works on the main thread. 2901e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn */ 3001e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn public static Application getInitialApplication() { 3101e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn return ActivityThread.currentApplication(); 3201e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn } 3301e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn 3401e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn /** 3501e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * Return the package name of the first .apk loaded into the process. 3601e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * NOTE: Only works on the main thread. 3701e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn */ 3801e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn public static String getInitialPackage() { 3901e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn return ActivityThread.currentPackageName(); 4001e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn } 4154d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov 4201e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn /** 4301e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn * Return the raw interface to the package manager. 4454d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov * @return The package manager. 4501e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn */ 4601e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn public static IPackageManager getPackageManager() { 4701e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn return ActivityThread.getPackageManager(); 4801e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn } 4954d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov 5054d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov /** 5154d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov * Gets the value of an integer core setting. 5254d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov * 5354d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov * @param key The setting key. 5454d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov * @param defaultValue The setting default value. 5554d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov * @return The core settings. 5654d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov */ 5754d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov public static int getIntCoreSetting(String key, int defaultValue) { 5811e515cbefb2d0f38e26cb41c8cd3790f881220cSvetoslav Ganov ActivityThread currentActivityThread = ActivityThread.currentActivityThread(); 5911e515cbefb2d0f38e26cb41c8cd3790f881220cSvetoslav Ganov if (currentActivityThread != null) { 6011e515cbefb2d0f38e26cb41c8cd3790f881220cSvetoslav Ganov return currentActivityThread.getIntCoreSetting(key, defaultValue); 6111e515cbefb2d0f38e26cb41c8cd3790f881220cSvetoslav Ganov } else { 6211e515cbefb2d0f38e26cb41c8cd3790f881220cSvetoslav Ganov return defaultValue; 6311e515cbefb2d0f38e26cb41c8cd3790f881220cSvetoslav Ganov } 6454d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov } 6501e4cfc47d0a2c7e7ab383d2fb23224ec52c0301Dianne Hackborn} 66