2017-05-28 19 views
1

我想从我得到的三星S健康SDK的BLOB文件中获取数据。 我实际上做的是:从BLOB文件恢复数据S健康

Cursor c = null; 
int i = 0; 
c = result.getResultCursor(); 

if (c != null) { 
    while (c.moveToNext()) { 
     byte[] live_data = c.getBlob(c.getColumnIndex(HealthConstants.Exercise.LIVE_DATA)); 
     if (live_data != null) { 

      // Do something with data. 


     } else { 
      Log.d(APP_TAG, "there is no live data."); 
     } 
    } 
} else { 
    Log.d(APP_TAG, "There is no result."); 
} 

“live_data”是包含了所有数据的JSON一个压缩文件。 我试图用ZipInputStream解压缩它没有成功。 我该怎么办?

回答

0

最后,我在几次尝试后找到了解决方案。 问题在于blob文件是gzip文件。 下面是一个简单的代码来解压缩字节数组(在我的情况live_data):

ByteArrayInputStream inputStream = new ByteArrayInputStream(live_data); 
GZIPInputStream gzipInputStream = new GZIPInputStream(inputStream); 
BufferedReader bf = new BufferedReader(new 
InputStreamReader(gzipInputStream, "UTF-8")); 
String outStr = ""; 
String line; 
while ((line=bf.readLine())!=null) { 
    outStr += line; 
} 

哪里outStr是我想要检索和live_data是块字节数组文件的内容。 我希望这可以帮助别人。