找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 2792|回复: 10

[webOS开发] Service 的修改方法

[复制链接]
发表于 2009-7-25 17:56 | 显示全部楼层 |阅读模式
谢谢捧场
/ S# Y2 y- _5 b' d, z
# |3 f  w( x% e% ?2 j) ][ 本帖最后由 mfly 于 2009-7-31 16:09 编辑 ]

评分

参与人数 1威望 +50 收起 理由
CyberVsQ + 50 谢谢分享

查看全部评分

回复

使用道具 举报

发表于 2009-7-25 20:59 | 显示全部楼层
支持!!!
回复 支持 反对

使用道具 举报

发表于 2009-7-26 01:04 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2009-7-26 01:09 | 显示全部楼层
Services 這一个我还是似懂非懂.
回复 支持 反对

使用道具 举报

发表于 2009-7-26 22:17 | 显示全部楼层
用这个方法,结果出现这样,哪里不对呢?请指教,谢谢
  1. package com.palm.messagingrouter;
    # |9 m3 v2 h% ~7 h
  2. 1 F5 L: Y8 R1 j, ^$ j$ s
  3. import Association.Many;! [2 d, K3 P8 d
  4. import com.palm.oasis.util.ZoneLogger;
    7 H* g& S8 @$ E8 [' B

  5. 8 T9 F0 S" _" f( R) Q5 P) |/ d
  6. public class SmsMessageSegmentContainer extends MessageSegmentContainer
    / r% Q, j: J1 x* _# u, M! a, H
  7.   implements MessagingRouterJsonConstants, MessagingRouterTilConstants
    4 S9 B/ D1 d/ E6 O7 H1 V- R% k& m- A) e
  8. {0 z- u7 x- ?/ n
  9.   private static final long serialVersionUID = 1L;1 w+ U7 a. T( j; A
  10.   private String completeMsgString;
    , `+ ]3 P4 F, _. Y: u* W
  11.   private String bodyEncoding;
    : [6 n  d' j* J# @% A! U
  12.   protected static ZoneLogger logger;8 Q  b  u- I  P# G1 _" Y0 Q  q
  13.   Many segments;5 _8 @7 |8 ]6 W  ]4 i0 ?

  14. ; }& g0 u, M- k! G4 {* o# h' |
  15.   public SmsMessageSegmentContainer()9 e* @" m9 p6 E& D
  16.   {
    , {' ]* S" P' d6 N
  17.   }
    ( \% p5 q3 x( Z) m- K
  18. . l2 n" }7 j  S6 R; J
  19.   public SmsMessageSegmentContainer(long messageId, int totalSegments, String bodyEncoding)
    ) A; `4 s. M* O0 |9 [  i
  20.   {
    / D# z7 l; |" W3 C5 k5 k
  21.   }/ c- J2 k, T  a
  22. 0 W, ]; E" A+ S" r5 K, _
  23.   SmsMessageSegmentContainer(String messageId, int totalSegments, String bodyEncoding)* ~$ v5 n8 ]1 `! O# u5 [% `
  24.   {
    ( k1 @) w" Y4 {$ `. G" p* O6 t7 B
  25.   }
    ( G# F3 f% N4 e2 W5 A  R

  26. 3 f6 G4 [$ K9 g9 M! H4 s% k  Y
  27.   public String getBodyEncoding()
    8 [' |7 o7 }; ]& _
  28.   {+ U" }9 T' ^; f2 i
  29.     throw new Error("Unresolved compilation problem: \n");
    4 u. q: l9 U( C5 y+ t1 H
  30.   }
      D( g4 b5 b' H- j7 I: e9 S( d

  31. : k& L9 D$ P  n) Q2 H* ]- z  o- B
  32.   protected boolean isPrintableChar(char ch)9 `3 z  \6 I7 l/ D  q' d
  33.   {
      q5 Q5 @! t! T6 K' H" F
  34.     throw new Error("Unresolved compilation problem: \n");
    : B) ?" m0 K9 z0 O
  35.   }
    : ~0 y) n; p9 T/ T
  36. , i- {+ P" a% p
  37.   public boolean isMessageComplete()
    * u( v" C* J/ n
  38.   {. c" t6 h% h% ?8 j
  39.     throw new Error("Unresolved compilation problem: \n\tMany cannot be resolved to a type\n");* E' B# n" b8 E6 Y/ g7 ?0 Z
  40.   }, Z# g9 d! ?2 y  N1 V  k9 z

  41. 3 J* t' G- g9 o. a" |8 R7 O2 |1 m
  42.   public String getCompletedBody()! ?/ s8 X* k9 P7 T# U- o  t3 V( \0 c
  43.   {# q2 d$ f7 R5 y- O4 @
  44.     throw new Error("Unresolved compilation problem: \n");
    # @& q0 X. j5 s( ]4 v% \1 U
  45.   }0 d3 C1 q  N- e9 E2 {# ~
  46. 0 g8 ]: J7 \; W% e+ C$ ?
  47.   public void addNewSegment(SmsMessageFromTil msgSegment); F0 u" _, I- g( q) ]
  48.   {
    & i' I. J) R4 {$ ^; m8 a! I
  49.     throw new Error("Unresolved compilation problems: \n\tMany cannot be resolved to a type\n\tMany cannot be resolved to a type\n");9 \7 a( j/ s" n4 O) k) H5 X
  50.   }
    5 K; ~8 }: v( {0 U; u" K
  51. * m( \. ?4 V' B8 B  L
  52.   private String convertToJson(boolean doHidePrivateData)
    + C0 A  C) G, D! B. }) h' }- S
  53.   {4 b) c$ [# ?6 F2 Z& i. S
  54.     throw new Error("Unresolved compilation problems: \n\tMany cannot be resolved to a type\n\tSyntax error on token ":", ; expected\n\tSyntax error, insert "AssignmentOperator Expression" to complete Assignment\n\tSyntax error, insert ";" to complete Statement\n\tString cannot be resolved\n\tjsonString cannot be resolved\n\tjsonString cannot be resolved\n\tjsonString cannot be resolved\n");- x% Q1 t/ F" h! i
  55.   }
    8 P& Y5 i" B. {/ E+ k

  56. 8 }3 V; ]2 i0 T( x# K: V
  57.   public String toJSONString()5 }. r) a' {9 s8 F% W$ i  {
  58.   {
    " V/ m, B; `2 |" }! m% J
  59.     throw new Error("Unresolved compilation problem: \n");. Y" d4 y4 M. z, G* N
  60.   }$ `1 {2 u0 p6 P2 X) R8 n6 x$ O1 i0 \

  61. 8 Q, {5 r$ Y( S* S
  62.   public String toDebugJSONString(); T7 g/ W' M  W# `8 R" T
  63.   {
    * J  G+ i5 m  `/ P
  64.     throw new Error("Unresolved compilation problem: \n");1 C, w1 U. z4 n/ M" V
  65.   }- ^% D. d$ Z, U$ C" C5 O6 n
  66. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-7-26 22:23 | 显示全部楼层

原始代码是这样的

  1. package com.palm.messagingrouter;( H$ _2 G- v2 Q. V/ E

  2. + j2 D2 o$ x' x1 C+ n5 S  A: Y7 I5 }
  3. import com.palm.oasis.activerecord.ActiveRecord;2 W% C, `! ], u& f  M
  4. import com.palm.oasis.activerecord.ActiveRecordException;8 x: R( M( W6 |# c$ Z7 Y5 a
  5. import com.palm.oasis.activerecord.Association.Many;
    # [# [* G. U  a& {
  6. import com.palm.oasis.activerecord.Batch;) U1 F( o8 g+ `% E, {9 n' ~
  7. import com.palm.oasis.activerecord.SqlFind;
    ( V: Z% b& n- i% b/ X& f. ^" T, l% U
  8. import com.palm.oasis.util.Base64;: Y/ r+ p" t2 H  s' T
  9. import com.palm.oasis.util.ServiceLogger;
    : Q, h3 I4 n" j9 J
  10. import com.palm.oasis.util.ZoneLogger;
    ' Y2 C/ F9 p; Q( y
  11. import java.io.ByteArrayOutputStream;
      O! h6 `: r2 L1 `0 O
  12. import java.io.IOException;
    ) w& l6 W- r9 h6 Z$ q
  13. import java.io.PrintStream;) {$ R, H* }* z9 A: N0 U
  14. import java.util.Iterator;- {: i+ B2 W5 o" Z
  15. import java.util.List;4 e( l3 U; I3 U9 Q$ w7 {0 q7 y$ J9 F
  16. import org.json.JSONException;* A( C* q" y" K
  17. import org.json.JSONObject;" O# U: v* m% y. V6 y/ Q7 D

  18. 5 N+ G0 `* Z8 f/ X- J" O
  19. public class SmsMessageSegmentContainer extends MessageSegmentContainer; C* v7 M1 w' G. m' V/ o, k9 Q. C
  20.   implements MessagingRouterJsonConstants, MessagingRouterTilConstants1 l; Y0 e7 E; v2 `
  21. {; b- R! X7 l% D& ~
  22.   private static final long serialVersionUID = 1L;2 E7 i3 `. Z+ R2 e1 W  T* C& Z
  23.   private String completeMsgString;: J# `$ e  H8 r" R
  24.   private String bodyEncoding;
    + t" K6 f" y! H  C% y9 [( J
  25.   protected static ZoneLogger logger = MessagingRouterService.getLogger(SmsMessageSegmentContainer.class.getSimpleName());
    ( f" \2 y! f9 X* u1 T- A2 u) Q
  26.   Association.Many segments;
    ' j0 {1 |# C/ w7 @

  27. 6 g% h+ q3 J: T# p/ [- w" n, c4 w
  28.   public SmsMessageSegmentContainer()) N( ]# s) B2 I* P, s$ N
  29.   {
    # C  ^- n7 f+ h: J
  30.     this.completeMsgString = null;" R  E4 U! h- g$ k$ N* E# t
  31.     this.bodyEncoding = null;. r0 [2 V5 b5 m9 k% s
  32.     this.segments = hasMany(SmsMessageFromTil.class, 1);
    : z' }4 b8 H% |1 g
  33.   }: R1 A2 k- S- G) Z' G% h0 Z" u2 Z: W& j
  34.   P, f  {, p  G6 ~1 O: J
  35.   public SmsMessageSegmentContainer(long messageId, int totalSegments, String bodyEncoding)
    / G* I1 y( z; e4 l
  36.   {) Y! V2 T$ @) Q* c" r" S# F3 J
  37.     super(System.currentTimeMillis(), messageId, totalSegments);! u: U4 Q6 |* C# ]/ v7 d
  38.     this.completeMsgString = null;
    - a: ?* [' L0 J4 f6 C5 E1 ?: b2 }
  39.     this.bodyEncoding = null;: @5 O' A' n# l
  40.     this.segments = hasMany(SmsMessageFromTil.class, 1);
    8 o  l2 N: U( g- u) o3 X  E# A
  41.     this.bodyEncoding = bodyEncoding;) @5 j3 Z8 H) s! I6 {
  42.   }1 V3 L- s7 F( I
  43. 4 g$ ?3 d& o& _. P
  44.   SmsMessageSegmentContainer(String messageId, int totalSegments, String bodyEncoding). I0 u6 \: }) @4 O. L) @6 A
  45.   {* K0 ]7 B: f4 U$ a  c# p% L
  46.     super(System.currentTimeMillis(), Integer.parseInt(messageId), totalSegments);
    # U1 D9 A5 p! C/ V6 j+ i
  47.     this.completeMsgString = null;+ a9 ?  J' h  C( ~) \4 \
  48.     this.bodyEncoding = null;% z1 o: s+ r2 B0 ^8 R) y
  49.     this.segments = hasMany(SmsMessageFromTil.class, 1);/ q9 b4 j6 G$ h" v/ Y
  50.     this.bodyEncoding = bodyEncoding;5 f# m+ I" Y4 [9 ~5 F1 i* x$ z; L, h
  51.   }
    " l$ Z" g; c2 z) d2 Q
  52. / a' w, A( P! O, B
  53.   public String getBodyEncoding()
    3 N% V4 ]) L3 b* G7 w% h
  54.   {% u/ f% G% x1 L$ T. J
  55.     return this.bodyEncoding;& {, ], Z8 I8 f3 T! U5 m1 v0 g/ u* k
  56.   }
    0 r) w9 k6 Q4 J; ^  `

  57. : m$ h  w/ G5 k% R: ~( c3 Y
  58.   protected boolean isPrintableChar(char ch). x  Q  t" I' _- I, h! z+ i
  59.   {
    . i+ W: }& S, K9 N9 J; P
  60.     boolean isItPrintableChar = false;0 S$ x7 @9 n  p) ^
  61.     if ((ch >= ' ') && (ch <= '~')) {
    ! f( ^) g! G0 [( ?3 z+ `! y* t
  62.       isItPrintableChar = true;! U( }1 p7 B. _% S5 j3 z
  63.     }" M5 L) C: {! D+ ^, D
  64.     else if ((ch >= 128) && (ch <= 168)) {
    $ ^; x& h4 F* O# b3 h0 d
  65.       isItPrintableChar = true;& R0 t  g5 e) P, m5 ~7 C
  66.     }
    7 W( [" s6 S% a2 n
  67.     else if ((ch >= 224) && (ch <= 247))
    ' j8 y- F$ R8 t. X# q3 X. D4 ^
  68.       isItPrintableChar = true;
    $ B; \' D# s3 d, d5 O- ^
  69.     return isItPrintableChar;6 M5 X* _6 p4 U- D  N8 Z5 z6 a1 C
  70.   }
    3 i0 P" s4 b- T8 K" _
  71. + V- s& k1 {! E
  72.   public boolean isMessageComplete()
    : z5 \; p" p1 ?
  73.   {! r) x4 z/ m0 V. M( m, @
  74.     if (!(this.isMessageComplete)); Q+ }/ w; r/ e
  75.       try
    " z* r: `) `: l/ H3 N7 R! N6 M
  76.       {/ F# {7 y1 b/ h3 S
  77.         synchronized (SmsMessageSegmentContainer.class)8 ?! n  z4 _; J$ ^$ X
  78.         {
    $ j) O% X) S9 N% d
  79.           List listSmsSegments = ActiveRecord.find(this.segments.sqlAll().orderBy("segmentNumber ASC"));: X4 z6 I1 A) R0 Z6 k
  80.           if ((listSmsSegments != null) && (listSmsSegments.size() == this.totalSegments))
    + ]  J8 R  g( x) N
  81.           {$ S6 Z2 y6 ]3 z
  82.             this.isMessageComplete = true;
    , M% k7 ^" U! X, g
  83.             logger.fine("At this point all SMS message segments have been recieved so we are going to put it all together");
    : k# ^9 `! j% \. @- d6 w4 i
  84.             StringBuilder msgString = new StringBuilder(160 * this.totalSegments);
    6 [+ I3 `- s- X. \+ l6 o! r
  85.             if (msgString != null)
    6 a; ~" L  L+ |9 `7 }! h  F
  86.             {
    ( n# W9 _. u+ i- T* l. c0 ]! F
  87.               if ("bbin".equals(this.bodyEncoding))
    # G; l+ H( H8 @
  88.               {
    + B% w6 z7 b* v+ R- @  z/ I) f  n
  89.                 ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
    9 o  j" i, Z0 O4 Q- p6 n$ c  ^
  90.                 Iterator i$ = listSmsSegments.iterator();( [/ W1 D5 |. n1 @* P
  91. " j' ?3 Y) w# W2 F
  92.                 while (i$.hasNext()); z) e& J+ {, `+ _& T6 m+ V& g
  93.                 {/ ]" m5 Z# R! g1 C0 C; ^
  94.                   SmsMessageFromTil msg = (SmsMessageFromTil)i$.next();
    $ j; Y9 E6 ]. O; `
  95.                   if ((msg.getBody() != null) && (msg.getBody().length() != 0));
    / \- I9 F5 i9 S& o) }9 T$ M
  96.                   byteOut.write(Base64.decode(msg.getBody()));
    4 n3 o- X; a* |2 E& r
  97.                 }
    / S" M, ?; l2 j0 m9 R- T) J
  98.                 char[] testArray = byteOut.toString().toCharArray();
    ! i( ~/ B& F* _# L0 c% n. R4 r
  99.                 boolean isAllCharsPrintable = true;$ [3 a+ t$ w* M  Q
  100.                 int i = 0;- m9 q' P# H& y6 j
  101.                 for (i = 0; (i < testArray.length) && (isAllCharsPrintable); ++i) {
    8 U  P# g. {% v4 L2 z
  102.                   if (!(isPrintableChar(testArray[i])))9 Y5 K$ C, D$ b& A7 ~5 ?
  103.                     isAllCharsPrintable = false;
    ' Y- [( g* `4 r2 Z
  104.                 }3 Q0 |( x. d9 F5 p% ~6 J/ |# c# @
  105.                 if (isAllCharsPrintable)  i6 O5 Y( k& r2 y3 p- C" `7 a& i, f
  106.                   this.completeMsgString = byteOut.toString() + "";+ w1 Y6 P3 m( P' j
  107.                 else
    # F: h6 I/ t) j% W0 P" ~& h
  108.                   this.completeMsgString = Base64.encodeBytes(byteOut.toByteArray()) + "";
    ( ~! u4 `1 D! ~, u+ x* |0 F2 V) k
  109.                 System.out.println(this.completeMsgString);
    % A- V( c5 A% W
  110.               }
    3 [% |) G. T( t. |3 _
  111.               else {
    2 |+ r$ l4 D6 L# Q
  112.                 Iterator i$ = listSmsSegments.iterator();
    ; e2 n9 m+ t3 i7 U7 f: J4 m- t/ e
  113. ! r0 N8 g% D' K
  114.                 while (i$.hasNext())
    7 y; K' ?0 Z% e* p
  115.                 {
    ; P6 J$ s5 [3 o
  116.                   SmsMessageFromTil msg = (SmsMessageFromTil)i$.next();
    % e/ J$ }4 X1 p5 @+ b' y
  117.                   if ((msg.getBody() != null) && (msg.getBody().length() != 0));, v* n. A  k, e" T- \1 _$ j/ c
  118.                   msgString.append(TilUtils.decodeString(msg.getBodyEncoding(), msg.getBody()));
    , H, P( Z9 X; Y' m4 i# v! m
  119.                 }: `1 U) F- v) _& q
  120.                 this.completeMsgString = msgString.toString() + "";4 o9 ?0 Y3 x9 a# J5 w$ L
  121.               }) R7 x! p1 A; L# ]. g1 u+ k
  122.             }( c# Y+ n/ U$ ^) V4 ~
  123.             else {
    " G5 d( _* t9 c+ i- {
  124.               logger.severe("Error allocating memory to put Segmented SMS Message Together");
    0 y" t) a9 b& K& ]
  125.             }
    1 p# ~; G8 R" b: W* ]
  126.           }
    . p* a/ n6 @7 h! {; C$ B8 F
  127.           else if ((listSmsSegments != null) && (listSmsSegments.size() > this.totalSegments)) {
    ! Y" Q8 V4 a4 y$ w+ u8 }
  128.             logger.severe("Too many SMS message segments found so assuming corrupted for " + this.segMsgContainerId + " in DB.  We found:" + listSmsSegments.size() + " but we expected: " + this.totalSegments); }
    # S- ^" x  d% Y1 b
  129.           listSmsSegments = null;
    ( o. P/ O3 N  r; I
  130.         }$ i& _7 V& @: j2 r
  131.       }: X% B, d; ]( b8 I' S
  132.       catch (ActiveRecordException e)4 S: q7 l7 j1 V) }1 I9 \
  133.       {
    ( G$ `# `/ b) o* N' n
  134.         logger.warning("SMS Message couldn't be retrieved from the database at this time.");" J" N: F4 i% g- Z* F" x
  135.       }
    " b$ @' a' Y6 g5 o7 W$ h  }8 I
  136.       catch (NullPointerException e)7 \- F( g. h, X3 s( h
  137.       {5 W/ K9 \# f6 s5 E& J! |9 @
  138.         logger.severe("Null Pointer Error putting Segmented SMS Message Together");
    : E( \$ {: D8 t* l; M  ^
  139.       }
    $ [/ Q* T( E0 w
  140.       catch (IOException e)
    7 l& N) s% \8 s0 i0 r
  141.       {
    # W# ^4 v3 k; K4 G) X
  142.         logger.severe("Error Decoding Binary Message");
    0 A# m% r: |9 q- v
  143.       }
    4 y3 q) Z& R3 Q8 M+ {
  144.     return this.isMessageComplete;6 h9 w# V# v* M$ o- s$ \6 w
  145.   }
    & n0 q: S+ E! [/ u5 m- I$ V
  146. 1 @- L+ ~* q! {  _0 B+ h. T
  147.   public String getCompletedBody(). C# {* H6 h) u5 f9 O  y8 e
  148.   {0 l- k' b% e# k
  149.     if (!(isMessageComplete()))% r& `# ~6 k* _% s* C0 `* k
  150.       logger.warning("Message Not yet Complete so you should call this after testing with isMessageComplete");
    2 @+ E! ^( m* q7 M# `
  151.     return this.completeMsgString;/ M0 m. @. X: s  v
  152.   }7 H+ ?. X$ }8 _4 Y; y( j; u. N

  153. % G: n4 o. r! m4 g! c6 n
  154.   public void addNewSegment(SmsMessageFromTil msgSegment)( ]; |3 l/ U! I: F3 w
  155.   {
    ! q$ @, S" T+ c" P/ \+ E8 F- A3 q
  156.     try
    3 x4 A( n9 i) `3 {
  157.     {
    4 i) \: U1 x* a1 F! ]9 T( G
  158.       if (logger.getLogger().isFinerLoggable)
    - z; Q: c, |; O5 ~$ {
  159.         logger.finer("Attempting to Adding new SMS Message with MessageId:" + msgSegment.getMessageId() + " with SegmentNo:" + msgSegment.getSegmentNumber() + " of Total Segments:" + msgSegment.getTotalNumberOfSegments());
    2 {1 t1 T3 O$ b( y% j' G% H
  160.       synchronized (SmsMessageSegmentContainer.class)
      {$ ~& |# L3 v# R# R
  161.       {4 Z; f+ ^0 Z7 C) q- e
  162.         int numSegmentsAlreadyStoredWithThatSegNumber = ActiveRecord.count(this.segments.sqlAll().where("segmentNumber=?", new Object[] { ! \; I* P& j9 b) s1 k$ s
  163.           Integer.valueOf(msgSegment.getSegmentNumber()) }));
    $ |/ {* n4 Y; D6 y

  164. ; G2 b$ V' V1 L' t. r7 _3 v" _. M
  165.         if (numSegmentsAlreadyStoredWithThatSegNumber == 0)* J$ l# Z; {+ F# T
  166.         {* M. f5 _: u) b5 d2 W) S
  167.           logger.finer("New SMS Segmeted Accepted.  Adding it to SMS Container");
    ( |& d( V5 B. s, h9 N; o# A/ F
  168.           logger.finer("saving segment to message holder");2 S; t% n: D$ I- e& q% A/ ~+ g8 J/ b
  169.           Batch batch = new Batch();
    5 `+ N+ s* Q. M9 d# X
  170.           this.segments.push(batch, msgSegment);. n) g8 @+ w1 D$ b* {4 w; U. y$ R
  171.           msgSegment.save(batch);7 _9 r8 y8 N/ j) s7 P5 c% c
  172.           if (0L != msgSegment.getTimeStamp())
    5 Q0 j/ o5 g( G& t
  173.             setTimeStampLastReceivedSegment(msgSegment.getTimeStamp());! n7 F( l, Q# Y* O3 H- s
  174.           save(batch);
    ( P9 T6 t7 ~: I, o
  175.           batch.execute();- Y  L0 ?. i+ v# b7 I* i
  176.         }1 f* J9 @5 z! B/ [
  177.         else {6 S9 S8 L+ F- ]/ D. O; J3 W
  178.           logger.warning("Found duplicate SMS Message segment already saved");2 B% B0 B/ {; p+ j6 S
  179.         }
    * M$ `2 ^" i$ n  Y& P- x
  180.       }
    8 ^$ x8 R6 l; X# [" F+ o" \8 p2 L
  181.     }8 `+ u% c* G, b4 L' H9 J5 M" \
  182.     catch (ActiveRecordException e)
    * g, f/ ^) K+ ~4 X: h
  183.     {
    & v& @. _' T$ s
  184.       logger.severe("Error saving SMS Message Segment.  Data will probably be lost.");
    ( A. ^: H/ m* w" e1 q  C' \* Q
  185.     }& }3 h# ^+ o9 `1 g! V* s8 z
  186.   }
    # ~  L! D$ W$ N$ L" z' n( K

  187. 8 B% u0 H* M/ o: J9 I
  188.   private String convertToJson(boolean doHidePrivateData)1 m" J7 m: J" p6 y+ z4 \
  189.   {
    , m. \- I1 [2 h* ]. [/ b. i
  190.     JSONObject smsJson = new JSONObject();
    8 V* H# E% q2 N1 m( ]; F; E$ T
  191.     SmsMessageFromTil msgSeg = null;# M2 c3 I( E; C5 X8 z# {2 z; L
  192.     try, _5 B+ U* ^% P. N- R( |
  193.     {1 R6 x& [6 W1 z! J1 V& E/ ?
  194.       msgSeg = (SmsMessageFromTil)this.segments.findFirst();- y( C) ?: n; r. X* p: o
  195.       if (msgSeg != null). U5 n% p+ H6 ?
  196.       {$ ?4 n2 |# T# ~' o3 @7 A
  197.         if (doHidePrivateData)
    . Q6 i0 p7 `0 N2 z- I; t
  198.         {
    & x" m: _" b$ Y  j2 W
  199.           smsJson.put("body", "This has been hidden for logging");
    ; i+ ~" O2 S) i$ X6 f! I- N
  200.           smsJson.put("address", "555-333-4444");
    3 c! [  ]7 o& G; T+ r4 p6 ~1 n5 j
  201.           smsJson.put("callbackNumber", "555-333-4444");& G2 \' [* l5 Q2 U5 u
  202.         }" U/ ]3 }9 A6 v' `) F) R' ~
  203.         else {
    / w$ c, W+ a/ l# X
  204.           smsJson.put("body", getCompletedBody());& G& V6 F5 v7 d
  205.           smsJson.put("address", msgSeg.getWhoIsItFrom());  ]; Z. _% F6 l$ I3 z3 j6 ^9 s
  206.           smsJson.put("callbackNumber", msgSeg.getCallbackNumber());
    7 V- [( x9 r0 M7 B6 Z! f3 [4 x
  207.         }
    ' e& @) h+ m2 A7 F+ ]  n! d1 d
  208.         smsJson.put("networkMsgId", msgSeg.getMessageId());' @( m- a! J( _( |7 e2 l
  209.         smsJson.put("deliveryReportOptions", msgSeg.getDeliveryReportOptions());2 \3 D, v" V. N0 ~/ [/ q
  210.         smsJson.put("timeStamp", msgSeg.getTimeStamp());  J* @, }& B9 S: X0 h5 z
  211.         if (msgSeg.isThisMessageFromAGsmNetwork())
    ! J- P/ J: ?; X* T- L& O6 x
  212.         {* M, N4 O4 {# a9 L  m/ f
  213.           smsJson.put("priority", msgSeg.getSmsClassInfo());
    . j/ P/ q2 o/ o
  214.           if (msgSeg.isFromSim()); t2 d. |/ n* x0 H2 \( c
  215.             smsJson.put("isFromSim", true);% W0 L, |) G* }+ |& o# J1 |
  216.         }+ d) p6 P1 m( Z+ Q0 n7 v
  217.         else {
    7 A8 c; b! p; E: U
  218.           smsJson.put("priority", msgSeg.getPriority());
    ; t- c, F! }% [' R* j) Z
  219.         }8 w* |. d8 ?# v$ n6 U0 w/ L: M
  220.         smsJson.put("displayMode", msgSeg.getDisplayMode());6 m8 {$ M* n, m7 H( r% k5 J
  221.         smsJson.put("privacyMode", msgSeg.getPrivacyMode()); break label257:
    ; m) o2 }: O( b3 ^
  222.       }4 N9 a' p& w; p' b. m& z
  223. 9 l4 b& \# t( G+ @( @0 w1 H
  224.       logger.severe("Did not find Message Segment to generate JSON string");1 S2 x) F2 m6 w; N' v
  225.     }
    6 S- h8 K( O1 S; A8 d# q
  226.     catch (ActiveRecordException e)5 _, R2 L6 u. s- U0 _1 J
  227.     {4 Y' a( U# N* T+ v; i  e" y* t
  228.       logger.severe("Caught Exception", e);8 l8 A) |9 [& r3 `
  229.     }5 L2 C0 F! i! p( l- M
  230.     catch (JSONException e)- k; H7 g4 u) h0 D$ E- E9 B
  231.     {! B  Y6 c1 p& Q2 m
  232.       logger.severe("Caught Exception", e);
    , [, i" ^* b5 z) H
  233.     }
    2 }1 T' {6 [! B+ r6 s
  234.     label257: String jsonString = smsJson.toString();) H# `$ P! m5 C; w
  235.     logger.finer("toJSONString SMS Message: " + jsonString);
    5 r$ j' J( J4 B/ j8 i
  236.     return jsonString;
    ( m0 ]3 w4 a8 H! i! d% @- |  @9 y% K
  237.   }
    : ^' O. X3 q) E/ ^+ x4 w" ^
  238.   Y- c3 n. V. f0 c
  239.   public String toJSONString()
    . G+ a) ]4 }0 a, S8 h2 r: \8 K
  240.   {
    ! ^, e  Y; o- n; @% x
  241.     return convertToJson(false);9 h/ P" D% g" l% \" o
  242.   }$ O7 O- f: k# x5 L: ]

  243. 4 ]! Q6 J  U; N3 r
  244.   public String toDebugJSONString()1 Q! z$ Q  t4 P7 Q  l  I2 j) a
  245.   {
    ( e9 S; ^6 P) t" P
  246.     return convertToJson(true);4 E! J. [) n" }" U
  247.   }# r3 A6 u" u* f% e3 _' }# p( q
  248. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-7-26 22:23 | 显示全部楼层

回复 楼主1# mfly 的帖子

我把palm的Jar也都加入Library了啊,咋回事呢?报了好多错哎
回复 支持 反对

使用道具 举报

发表于 2009-7-26 22:50 | 显示全部楼层

回复 楼主1# mfly 的帖子

是不是因为我加入的是1.1ROM里的jar的关系呢?跟1.0.4的参数对不上了
回复 支持 反对

使用道具 举报

发表于 2009-7-27 00:28 | 显示全部楼层

回复 楼主1# mfly 的帖子

我试了下,编译你的那个文件就ok,我编译的是SmsMessageSegmentContainer,不灵,估计是SmsMessageSegmentContainer里面的一些函数在library里找不到吧,如何才能编译这个文件成功呢?请指点一下,谢谢
回复 支持 反对

使用道具 举报

发表于 2009-7-27 21:24 | 显示全部楼层
eclipse啊~像我们这种穷人,只能用Emacs....
回复 支持 反对

使用道具 举报

发表于 2009-8-18 22:01 | 显示全部楼层
其它的代码有吗?我用jd-gui 0.2.7反编译出来好像有点问题啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 10:49 , Processed in 0.344260 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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