找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 1391|回复: 4

VEER刷机时一直检查电池电量,不知为何?

[复制链接]
发表于 2012-7-12 18:41 | 显示全部楼层 |阅读模式
本帖最后由 phil_rem 于 2012-7-13 00:48 编辑 4 c# h3 k! z/ Q2 ^* L* n
0 _7 A$ k0 |9 T9 t# f
( C- E6 L' f2 m9 y5 n* D) V
* x# M7 o  C( M( v
满电的Veer刷机一路next,到最后一步,然后一直提示Battery Charging,有基友提示可能电池故障,
# A' ^/ j4 X9 Y: U( R9 j1 h! t2 m+ X" o4 s' B
找了台可以正常刷机的小v,拆了电池换上后问题依旧,
  {0 g  |2 Q, T3 f8 G* g/ t' Y
' y$ F! u5 ~& F1 M! ^- s- \" O' p; P更杯具的是原来正常的小v刷机也这样了(手机可正常使用,只是无法刷机)
  b0 a2 l' [+ H9 H2 v
1 A  p6 _5 U% a) `$ ]5 O5 p+ |; A用8%12%修复工具修复无效,
4 u6 S0 {3 {/ K% I. P' g
* q4 G& B% ~# j7 m目前两台机器均无法安装软件,商店也不知道为什么一直在转圈圈,想下个preware也没机会了。。。。6 a# A4 K) n7 V1 J9 \
2 E( i6 M' G' X! F0 P
之前好好的一台被我弄坏了,悲剧啊。1 I& x/ N4 e* t- V8 \4 {+ R+ J% o! S
+ `( U9 j8 E/ U0 F# u- d# a
现在各种抓狂~  9 p& C8 Q$ `  d. {2 d8 r

) D; r% M6 J" {跪求解决方案,小礼物送上~
) h4 A4 W) s3 F
& e9 a+ W8 J9 A* I6 T& S2 g8 c+ H* v

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

×
回复

使用道具 举报

 楼主| 发表于 2012-7-12 22:51 | 显示全部楼层
诶,没人鸟我。。。。  看来国内不好混啊,去webosnation看看~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-13 00:02 | 显示全部楼层
// Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov  Date: 2012/7/12 23:51:59* `6 V" [: g5 ?( p5 R  y
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
  e! l2 ^( Y* v5 e! D* k5 X// Decompiler options: packimports(3)
' I7 g- g9 D: N' Q// Source File Name:   ChargeBatteryStage.java
- ^* `  b3 s  y+ t% D/ w# B( T. F$ l- c1 \
package com.palm.nova.installer.core.stages;6 k  p" q( b$ H( @, Q

# C: H7 y' s3 G2 U( n1 Dimport com.palm.nova.installer.core.*;
7 Z9 J. E: X' t$ O8 pimport com.palm.novacom.*;0 w2 a" G; m8 Z$ N& G4 ~
import java.io.IOException;
$ W- S& g4 f8 U  m+ E, y2 a/ h8 s6 ]4 W1 a4 B+ |" p
// Referenced classes of package com.palm.nova.installer.core.stages:
" {$ P2 W( f7 J( w//            BaseStage, GoIntoUpdateModeStage
. g* m* n5 R/ Q! d) A. p% _5 K( H6 v& S& ~3 |2 Z5 y
public class ChargeBatteryStage extends BaseStage
: Q+ I5 x% }& h& C    implements IInstallerStage
8 |3 Z. i0 n8 i6 M- f{' L& s: L9 F& D+ V0 G0 o# G& T
( y1 ?9 K3 u; K  @- d9 T, G8 o
    public ChargeBatteryStage(INovacomDevice device)! M" h8 e4 v9 J* a! U7 z9 i
    {' {( n% O4 T/ k5 N; [$ ^, a
        jobId = null;) Z( I( s7 Y1 W( n+ y
        progress = null;
( n- [) F/ i) D* N" w5 g2 P. e        currentChargeLevel = 0;
3 e8 `! s$ n8 F  p* U        this.device = device;
9 H( Z6 K' `$ M! }8 D0 o/ {    }
  h4 |# P7 \2 Z3 ^6 @8 `: H
+ g& c! E/ B4 n    public String toString()8 G" e7 [) Z" S) g
    {
" L8 t) V* W' I  G8 K$ N# N        return "Battery Charger";, @1 @, h% F; u0 x! `, Y: C( O' Z1 O
    }" {3 g' K" Z  R0 a6 E9 I, n: u
" u: W* Z1 ]/ \
    private void chargeBattery()9 h0 C( |0 t2 t+ b3 \
        throws NovacomException, IOException
* Z/ P( C! W9 h1 S  N7 _, P- E    {
) \5 ?( G( s+ V. u  e' |        INovacomStream stream = device.runProgram("", null);$ V( ]! h6 g( S7 z% H4 R
        String command = (new StringBuilder()).append("charging enable ").append(REQUIRED_POWER_PERCENTAGE).toString();% T& y" h! b* e. g/ ~6 t
        byte bytes[] = command.getBytes("US-ASCII");) M* ~$ j6 d5 B* o* C/ o, s
        stream.write(bytes);
6 d3 ~' j, c7 f/ q# z* ?        stream.closeOutput();
+ P; H  o" Z( x        String streamReturn = stream.readLine();
$ n) W* |# b) {* F7 e/ a; a9 ]        do
5 B0 s8 l& @. x( N! S$ s# X        {
, x! N8 r6 _2 f6 b4 X3 J. {  m* I$ `            streamReturn = stream.readLine();
" }$ J& Q3 R* G            if(streamReturn == null)8 N/ C% ~- j3 ]9 n/ u  S* a
            {6 D2 P: h" ^' `/ R4 G
                progress.commentOnJob(jobId, "stream interupted");
+ T* e6 @  |. y* t: p1 K' x                throw new NovacomException(-1, "stream interupted");
( Q3 @2 m9 {" `" R5 Y            }2 m8 e- W% Z" \0 f$ r
            if(streamReturn.length() == 0)
9 A( s$ o$ x$ M8 j7 p( q7 k3 L$ r            {% a# y; ^2 {: n$ A& [& Y! V
                progress.commentOnJob(jobId, "power charged up");
" F2 [$ _- L& c/ V# P( i                break;& X* U1 m6 m9 j* a1 A: X) u
            }' ~5 v: Q( j# p# A
            int start;
! r( j1 y, h$ p0 S5 n            int end;
# x# Q# n: X8 c            if((start = streamReturn.indexOf("p=")) >= 0 && (end = streamReturn.indexOf(" ", start + 2)) >= 2)# V6 H6 R* D; S% S5 G7 N; Q$ A
            {6 v& W3 |. n# P6 D9 `7 N
                start += 2;. c2 A+ B( F" `. F7 T# @! @$ E
                String strReadBatteryPercentage = streamReturn.substring(start, end);
8 R2 I: r8 j7 p1 A4 J6 y& e                try
7 l$ F2 g* @* R& r. p& `                {! O, M" C. @4 h3 ], ?! G1 f
                    int readBatteryPercentage = (new Integer(strReadBatteryPercentage)).intValue();
; S+ o+ v# w) h% K/ R0 k* F& w/ d                    if(readBatteryPercentage > currentChargeLevel)/ X4 c: M  o* C1 ?- J
                    {
' M2 p  f5 K' y2 s3 W* B4 l  F                        currentChargeLevel = readBatteryPercentage;
. t. R9 Q2 H* l  D" H/ C6 u                        progress.updateJob(jobId, currentChargeLevel);! l# P' I/ K% P* t: ~
                        progress.commentOnJob(jobId, (new StringBuilder()).append("battery percentage changed: ").append(currentChargeLevel).toString());4 w2 B  ]1 U5 t9 W3 v
                    }0 N( B7 [  g1 ~# ^$ u* t' I" p% E
                    Thread.sleep(500L);) j( ~. N9 r# c0 E
                }
% }3 G8 P' j* B% s3 K" s- I" \: _                catch(NumberFormatException e)% I: B. K5 T, @0 M1 D) C
                {
( V- M5 v" s6 d5 V5 z3 o$ P1 _                    progress.commentOnJob(jobId, (new StringBuilder()).append("+++++").append(streamReturn).append("-----").toString());
4 d4 |! c2 Q" w/ p                }0 m# j0 \1 K) [, F$ x3 K7 K3 \
                catch(InterruptedException e) { }0 C& T  N5 |5 q7 {  w
            } else* a  E4 g6 M4 S2 Q* P2 S( }0 ]
            {9 D$ D; p( J4 n8 ?7 k" y
                progress.commentOnJob(jobId, (new StringBuilder()).append("+++++").append(streamReturn).append("-----").toString());
" S4 ~3 t, w8 A$ p+ i3 u* H            }" n0 _% c6 P8 {. S: v: x6 u9 `
            stream.flush();) @/ V' N0 n& L& m
        } while(true);
9 }& `( X) Y4 u+ q6 V; T1 C% N        stream.close();: c5 [- A9 G& L# g- g( B5 b5 R4 _
    }
4 I" a% ?% B, @6 A, [: W( M. m& ?. P- B' `* I# c% {
    public void run()' [2 ~( [- Q6 X
        throws NovacomException, IOException( |) @8 |9 \. O# {/ Y; Y
    {+ F. |% w, ]* @% n8 F& B
        progress = getProgressHandler();% J6 o! i% M' C& B  B( k- Y4 S
        jobId = progress.startJob("Battery Charger Stage", 100);6 m/ \! M9 K& g/ S
        if(device.getState() != com.palm.novacom.Novacom.DeviceState.BOOTLOADER)
+ U* Z) \# J+ o8 H  F        {
, D, v  O% W- u$ Z5 g, R# ]            GoIntoUpdateModeStage intoUpdateMode = new GoIntoUpdateModeStage(device);
/ T8 y# U; T8 a            intoUpdateMode.run();8 m$ {; V) y: C, Q' ?4 H( [" J
        }
- n& G2 p3 w9 S        BootieUtilities bootie = new BootieUtilities(device);; Q9 P* F4 v+ C: E" P' n
        int currentPercentage = bootie.checkPowerStatus().intValue();) R* z9 n  U9 K0 X: N
        if(REQUIRED_POWER_PERCENTAGE.intValue() > currentPercentage)
$ U: L- Q6 q8 [2 T        {/ P  x) h8 A! H8 J: m
            progress.commentOnJob(jobId, (new StringBuilder()).append("Battery at ").append(currentPercentage).append("%").toString());
! y, l6 e  D! V& b" G0 n+ x; `7 o7 w            int count = 0;- i) r% n* _6 r3 x/ z/ ?" Z
            do
% W  Y" `, s) O: w0 \% W            {
9 _: H& U6 ?& {. T6 Z9 t6 i                progress.commentOnJob(jobId, "Battery Charging Started");+ l! C) H, S: u( B8 m
                progress.commentOnJob(jobId, (new StringBuilder()).append("Charging to Sufficient Power (").append(REQUIRED_POWER_PERCENTAGE).append("%), this may take a couple of minutes").toString());; I6 B& i5 l  p+ u
                chargeBattery();
2 j0 S' P3 ?" X                if(++count > RECHARGE_RETRY_COUNT.intValue())
* Y- x3 Y1 `9 @0 k, b3 w                    throw new NovacomException(-1, "failed to charge batttery");
( f$ _$ _3 M2 W            } while(REQUIRED_POWER_PERCENTAGE.intValue() > currentChargeLevel);4 P7 v8 X2 u5 n3 a6 D: \/ @
        }
4 f* |6 x+ h  q7 R  R        progress.endJob(jobId);7 Z3 k- i0 s& c0 p, F( [3 ~
    }
6 s% A- V3 b* x5 ]& a. J  C: s# ^# ^: s; C
    private static final Integer REQUIRED_POWER_PERCENTAGE = Integer.valueOf(25);
2 _1 G) a1 G1 r; U# X( D. t& h    private static final Integer RECHARGE_RETRY_COUNT = Integer.valueOf(5);
% Q7 l+ m) w! M) U$ \- ^    private final INovacomDevice device;
- B1 Z) F9 D- k" j    private Object jobId;6 ?8 I- \. {6 |3 {- s! F. m
    private IStageProgressReporter progress;" N, _2 T& [5 \6 N
    private int currentChargeLevel;3 J. D0 R6 k! W6 m* t: q) [: A

" n) w7 Z1 A; ^, S4 V}
8 i4 d2 J/ o: F/ Q8 t$ a7 v# E; C% o; C5 K' H
5 _, @( o+ m5 j) `7 Q6 L
求编译~~~~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-13 00:42 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

×
回复 支持 反对

使用道具 举报

发表于 2012-7-13 01:04 | 显示全部楼层
phil_rem 发表于 2012-7-13 00:42

* i/ v# |& X; N+ ~如果目的是为了不让充电,那么把下面的代码注释掉就可以了。
; E( x6 \+ s/ I4 @) P; u+ |' [9 n2 y* O& {" ~# [; t9 t6 Q2 u, d" w
原来是这样:8 M$ [1 G" Q. {
BootieUtilities bootie = new BootieUtilities(this.device);
/ g0 t" m! N+ [    int currentPercentage = bootie.checkPowerStatus().intValue();
+ ~, `7 k1 P) @8 J: N/ J/ S% a    if (REQUIRED_POWER_PERCENTAGE.intValue() > currentPercentage) {1 O, Z$ F6 `, u: `& O3 w& l
      this.progress.commentOnJob(this.jobId, "Battery at " + currentPercentage + "%");9 [1 z) Y) A# A7 L
      int count = 0;) q8 B1 x2 l& V2 k6 b
      do {! b: L; \, X2 z6 w9 T
        this.progress.commentOnJob(this.jobId, "Battery Charging Started");
/ E- y( i: W9 U! e        this.progress.commentOnJob(this.jobId, "Charging to Sufficient Power (" + REQUIRED_POWER_PERCENTAGE + "%), this may take a couple of minutes");- {) V9 A4 q) Z& i. x/ ~
        chargeBattery();% _1 v- G. ~1 y5 a) E: [$ n

/ W& ^# M7 O$ g( w        count++;
3 U+ @5 B% z4 E5 ?2 {0 E  a        if (count > RECHARGE_RETRY_COUNT.intValue())
5 U# T; P: H- ?          throw new NovacomException(-1, "failed to charge batttery");
. v4 Y+ s# D2 }/ e+ y! U% e4 v      }
; \9 k9 E( R" m/ T2 ~) o      while (REQUIRED_POWER_PERCENTAGE.intValue() > this.currentChargeLevel);7 q0 m. e3 n8 x9 @) {) }& l6 N
    }3 M" `- G9 f0 x1 o3 Y( Q

( k* \& W: i* L7 l# V) W    this.progress.endJob(this.jobId);1 w9 Y5 g5 O+ R4 b, ~' K

& L7 X' L" V$ @# K5 v' H: g注释掉变这样:- z' E" `6 b/ S8 w' v& y
BootieUtilities bootie = new BootieUtilities(this.device);
6 o! k$ F3 L7 v$ G+ ]    int currentPercentage = bootie.checkPowerStatus().intValue();
, |  W9 t4 n3 K0 `" N) S) `    /*if (REQUIRED_POWER_PERCENTAGE.intValue() > currentPercentage) {! P: Q6 C2 B# E/ J+ }# X; K
      this.progress.commentOnJob(this.jobId, "Battery at " + currentPercentage + "%");. c3 l7 X# R/ \' i/ q
      int count = 0;
+ Z3 q3 s8 F5 H& x      do {  C2 N/ z9 g+ U
        this.progress.commentOnJob(this.jobId, "Battery Charging Started");
/ l# K) M9 p/ {- @$ Y! U+ r2 Q        this.progress.commentOnJob(this.jobId, "Charging to Sufficient Power (" + REQUIRED_POWER_PERCENTAGE + "%), this may take a couple of minutes");
! w% F" M$ |; t: ?! M        chargeBattery();
! F1 _$ T2 E- X6 D6 y& G5 e4 Z2 U8 B8 y
        count++;8 |2 q+ _1 s, X6 M
        if (count > RECHARGE_RETRY_COUNT.intValue())
' K3 g% m+ H* C+ g3 o          throw new NovacomException(-1, "failed to charge batttery");
8 l: P  n; T5 C- u- Q; U) s      }
. |% D* K8 W$ ]4 I' k      while (REQUIRED_POWER_PERCENTAGE.intValue() > this.currentChargeLevel);
8 H. u8 w( \) h( A5 ]    }*/
2 x$ M! j# R4 \; O+ f9 _1 B( w! P3 F4 o- a& r* e
    this.progress.endJob(this.jobId);
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2024-11-20 03:34 , Processed in 0.280117 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表