Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.
например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.
public Class myClass
{
public int prop1 {get;set;}
}
Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref.prop1 = 1; //This line throws error
}
}
выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.
Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref = new myClass();
ref.prop1 = 1;
}
}
На самом деле я нашел точный способ выбрать, следует ли включать экран при подключении к сети переменного тока, USB или либо путем поиска источника в http://google.com/codesearch#409TP6F96yI/src/com/ android / settings / DevelopmentSettings.java & amp; l = 95
Требуется разрешение: android.permission.WRITE_SETTINGS
Settings.System.putInt(getContentResolver(), Settings.System.STAY_ON_WHILE_PLUGGED_IN,
mKeepScreenOn.isChecked() ?
(BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB) : 0);
Для AC: BatteryManager.BATTERY_PLUGGED_AC
Для USB: BatteryManager.BATTERY_PLUGGED_USB
Для: (BatteryManager.BATTERY_PLUGGED_AC | BatteryManager.BATTERY_PLUGGED_USB)
Хорошо, если он подключен к источнику питания, и вы хотите, чтобы он просто спал, нажмите кнопку POWER
.
Сначала вам необходимо зарегистрировать приемник для прослушивания Intent.ACTION_BATTERY_CHANGED
и проверить наличие BatteryManager.BATTERY_PLUGGED_USB
. Ниже приведен код для этого:
BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
Toast.makeText(getApplicationContext(), "Connected to USB, Stay Awake", Toast.LENGTH_LONG).show();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "WakeLock");
wl.acquire();
}
}
};
// register the receiver to listen to battery change
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, filter);
Вам также нужно разрешение в вашем AndroidManifest.xml, чтобы включить пробуждение
<uses-permission android:name="android.permission.WAKE_LOCK" />
. Еще одно замечание, в какой-то момент вы необходимо будет отменить регистрацию получателя. Вы можете указать, что на странице настроек для вызова unregisterReceiver