6
을 사용 된 .apk 파일을 전송하고 내가 바이트로 내 안드로이드 응용 프로그램에서 ksoap 프로토콜을 사용하여 웹 서비스를 소비 한내가 바이트 배열로 내 APK 파일을 변환 한 웹 서비스
[WebMethod]
public byte[] GetApkFile(string deviceID)
{
try
{
string path = ServiceHelper.GetTempFilePath();
string fileName = path + "\\VersionUpdate.apk";
FileStream fileStream = File.OpenRead(fileName);
return ConvertStreamToByteBuffer(fileStream);
}
catch (Exception ex)
{
throw ex;
}
}
public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
{
int b1;
System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
while ((b1 = theStream.ReadByte()) != -1)
{
tempStream.WriteByte(((byte)b1));
}
return tempStream.ToArray();
}
을 다음과 같이 웹 서비스를 사용하여 보낼 필요 아래 주어진대로 배열
public void DownloadApkFile(String serverIPAddress,
String deviceId) {
String SOAP_ACTION = "http://VisionEPODWebService/GetApkFile";
String OPERATION_NAME = "GetApkFile";
String WSDL_TARGET_NAMESPACE = "http://VisionEPODWebService/";
String SOAP_ADDRESS = "";
SOAP_ADDRESS = "http://" + serverIPAddress
+ "/VisionEPODWebService/SystemData.asmx";
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,
OPERATION_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER10);
new MarshalBase64().register(envelope);
envelope.encodingStyle = SoapEnvelope.ENC;
request.addProperty("deviceID", deviceId);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
try {
httpTransport.call(SOAP_ACTION, envelope);
Object response = envelope.getResponse();
byte[] b=response.toString().getBytes();
String fileName = "/sdcard/" + "VersionUpdate" + ".apk";
FileOutputStream fileOuputStream =
new FileOutputStream(fileName);
fileOuputStream.write(b);
fileOuputStream.close();
}
catch (Exception exception) {
exception.toString();
}
문제점은 바이트 배열 []을 파일로 다시 변환 한 후 정확한 apk 파일을 가져 오지 못하는 것입니다.
누구든지 코드를 검토하고이 버그가 있는지 알려주십시오.
변환을 위해 byte [] apk 파일을 sdcard의 .apk 파일로 다시 가져와야합니다.
...하지만 문제는 내가 그것을 자바 부분에 올 때 그것은 APK에 다시 구문 분석 할 수 없습니다 닷 넷 webservice.So을 사용하여 파일을 변환하고 있다는 것입니다 Java 통신에 자바라면 가능합니다. –