2014-05-12 2 views
0

제 애플리케이션에서 30 %, 20 % 및 10 %와 같은 배터리 수준 아래에서 몇 가지 조치를 취하고 싶습니다. 사용자는 위의 배터리 수준 중 하나를 선택하여 작업을 수행 할 수 있습니다.쓰레드가 아닌 수신기가있는 배터리 수준을 결정하십시오.

제 질문은 배터리 잔량을 확인하려면 어떻게합니까? 30 % 또는 20 % 또는 10 %으로 작업 할 수 있습니까?

다음과 같이 매니페스트 파일에 배터리 브로드 캐스트 수신기를 등록했습니다.

<receiver android:name=".BatteryLevelReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.ACTION_BATTERY_LOW"/> 
     <action android:name="android.intent.action.ACTION_BATTERY_OKAY"/> 
    </intent-filter> 
</receiver> 

하지만 (어떤 배터리 수준에) 내 수신기 수업을받을 때 몰라? 또는 다른 방법으로 ACTION_BATTERY_LOW 의도가 언제 실행됩니까 (배터리 수준)?

도와주세요!

+0

가능한 중복 9 %, 8 %에서이 일을 계속하지 않습니다 ACTION \ _BATTERY \ _LOW] (http://stackoverflow.com/questions/11970185/when-android-fires-action-battery-low) –

답변

0

위의 질문에 대답해야 this answer

대답이 부분을 확인하시기 바랍니다 :

mLowBatteryWarningLevel = mContext.getResources().getInteger(
      com.android.internal.R.integer.config_lowBatteryWarningLevel); 

그것은 당신에게이 장치의 특정 임계 값을 말할 것입니다하지만 당신은 변경할 수 없습니다!

+0

누가 나를 적어 뒀는지, 왜 그런지 말해 줄래? –

+2

다른 사람의 대답을 단순히 복사하거나 표절했기 때문에 나는 당신을 투표 해 투표에 기표했습니다. 그건 어떻게 Stackoverflow 작동하지 않습니다. 중복 질문 인 경우 해당 질문에 플래그를 지정하십시오. FWIW, 귀하의 표절 답변은 실제로 그 질문에 대답하지 않습니다. – 323go

+0

감사합니다 @ 323go,하지만 지금은 괜찮습니까 ?? P. 나는 내가 다른 사람들보다 먼저 대답해야하기 때문에 나는 편집에서 그것을 바꿀 수 있기 전까지 만 복사했습니다. –

0

documentation을 참조하십시오.

당신은 ACTION_BATTERY_CHANGED 수신기를 등록하고 같은 엑스트라 읽을 수 있습니다 거기에서

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 

float batteryPct = level/(float)scale; 

를, 당신은 다음 10, 20, 30 %인지, batteryPct에 역할을 할 수 있습니다.

if(batteryPct <= 10) { 
    // do 10% actions 
} else if(batteryPct <= 20) { 
    // do 20% actions 
} else if(batteryPct <= 30) { 
    // do 30% actions 
} else { 
    // do nothing 
} 

것은 당신이 무슨 짓을했는지를 추적해야합니다, 그래서 당신은 10 % 등을 할 때 안드로이드 화재의

+0

답장을 보내 주셔서 감사합니다. ACTION_BATTERY_CHANGED 수신기는 언제 호출 되나요? 배터리 잔량이 바뀔 때마다 의미가 있었습니까? 레벨 60에서 59까지처럼 수신기를 호출합니까? –

+1

맞습니다. 배터리 상태가 변경되면이를 호출합니다. 문서를 참조하는 경우 수신자를 등록하지 않고 현재 레벨을 얻는 방법에 대한 설명도 있습니다. – 323go

+0

답장을 보내 주셔서 감사합니다. 그러나 내 브로드 캐스트 리시버가 배터리 수준으로 변경된 것이 아닙니다. 한 게시물에서 누군가는 수신기가 각각의 배터리 레벨마다 호출되지 않을 것이라고 썼다. 모바일마다 다릅니다. 일부 회사에서는 매 10 %마다 호출됩니다. 모르겠지만 내 것은 어쨌든 불리지 않고있다! –

관련 문제