android - 안드로이드 BatteryManager 반환 1

기사 출처 android broadcastreceiver battery repeatingalarm

반복 알람 브로드 캐스터가 호출 될 때 Android 배터리 상태를 읽으려고합니다. 다음 설정이 있습니다.

public class RepeatingAlarm extends BroadcastReceiver {

    @Override       
    public void onReceive(Context context, Intent intent)
    {

            // Acquire the make of the device
            final String PhoneModel = android.os.Build.MODEL;
            final String AndroidVersion = android.os.Build.VERSION.RELEASE;

            // Grab the battery information
            int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
            int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
            final float batteryPct = level / (float)scale; 
    }

}


하지만 왜 batteryPct = 1를 반환하는지 이해할 수 없습니다. 내가 여기에 빠진 것이 있습니까? Android Google 페이지를 기반으로 올바른 권한을 추가했지만 도움이되지 않은 것 같습니다.
-1level 모두에 대해 scale를 얻습니다.
매니페스트에서 ACTION_BATTERY_CHANGED를 브로드 캐스트하려고 할 수 있기 때문입니다.

ACTION_BATTERY_CHANGED는 고정 인 텐트이며 매니페스트에서 수신기를 등록 할 수 없습니다. 다음을 시도하십시오

 Intent i = new ContextWrapper(applicationContext).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
 // now you can get the level and scale from this intent variable
int level = i.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = i.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float battPct = level/(float)scale;


이 의도를 위해 수신기를 장치 할 필요가 없습니다. 위에서 언급 한 방법을 사용하고 싶을 때 사용하면됩니다.

이 질문에 대해 Stack Overflow에서 비슷한 토론을 찾았습니다: https://stackoverflow.com/questions/14805318/

관련 기사
android - DialogFragment 검은 테두리 제거
java - libgdx 왜 카메라가 캐릭터를 따르지 않습니까?
android - Android Facebook 공유 : 활동을 찾을 수 없습니다.
android - Android 앱 디자인을위한 PSD 파일 크기 및 해상도
android - Eclipse에서 내 보낸 APK 충돌
android - Android에서 앵커 태그를 클릭 가능하게 만드는 방법
android - Android Emulator에서 Google Map V2를 표시하는 방법은 무엇입니까?
php - PHP 서버에서 Android 인앱 결제 서명 확인
android - ListView 행보기에 CheckBox를 추가하면 행을 클릭 할 수 없습니다.
android - SimpleAdapter에서 textview를 숨기는 방법