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;


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

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를 숨기는 방법