Из исходного кода я получил это:
/** Предоставляет доступ к информации об услугах телефонии на устройстве. Приложения могут использовать методы этого класса для определения услуг и состояний телефонии, а также для доступа к некоторым типам информации о подписчиках. Приложения также могут регистрировать слушателя для получения уведомлений об изменениях состояния телефонии.
Вы не создаете экземпляр этого класса напрямую; вместо этого вы получаете ссылку на экземпляр через {@link android.content.Context # getSystemService Context.getSystemService (Context.TELEPHONY_SERVICE)}. *
Обратите внимание, что доступ к некоторой информации о телефонии защищен правами. Приложение не может получить доступ к защищенной * информации, если у нее нет соответствующих разрешений, объявленных в файле манифеста. Если применяются разрешения, они отмечены в методах, с помощью которых вы получаете доступ к защищенной информации. **/
public class TelephonyManager {
private static final String TAG = "TelephonyManager";
private static Context sContext;
private static ITelephonyRegistry sRegistry;
/** @hide */
public TelephonyManager(Context context) {
context = context.getApplicationContext();
if (sContext == null) {
sContext = context;
sRegistry = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService(
"telephony.registry"));
} else if (sContext != context) {
Log.e(TAG, "Hidden constructor called more than once per process!");
Log.e(TAG, "Original: " + sContext.getPackageName() + ", new: " +
context.getPackageName());
}
}
Вы создаете несколько экземпляров TelephonyManger из разных контекстов? Если это так, то журнал ошибок покажет, что контекст является статичным.
По крайней мере, цитируйте, где вы получили свой ответ, чувак. Вот исходный источник, http://stackoverflow.com/a/9335205 –