Android Open Source - SmartTools Smart Tool Service






From Project

Back to project page SmartTools.

License

The source code is released under:

GNU General Public License

If you think the Android project SmartTools 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

package com.nj.simba;
// w ww . j a  v a 2s.c o m
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.zip.GZIPOutputStream;
import android.os.IBinder;
import android.util.Log;
import android.app.Service;
import android.content.Intent;


public class SmartToolService extends Service {
    private static final String TAG = "SmartTools";
    private ServerSocket mServer;
    private boolean mServerOn = true;

    @Override
    public void onCreate() {
        Log.d(TAG, "onCreate!");

        super.onCreate();      

        try {
            mServer = new ServerSocket(13470);
            mServerThread.start();
        } catch (IOException e) {
            Log.d(TAG, e.toString());
        }
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(TAG, "onStartCommand");
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onDestroy() {
        Log.d(TAG, "onDestroy!");
        super.onDestroy();

        mServerOn = false;
    }

    /**
     * Server thread accept PC client request CMD: only support list
     * applications now TODO: XXXXX
     */
    private Thread mServerThread = new Thread(new Runnable() {

        @Override
        public void run() {
            Socket client = null;

            while (mServerOn) {
                try {
                    Log.d(TAG, "wait accept...!");
                    client = mServer.accept();
                    Log.d(TAG, "accept one pc client!");

                    talk(client.getInputStream(), client.getOutputStream());
                } catch (IOException e) {
                    Log.d(TAG, e.toString());
                }
            }
        }

        /**
         * talk with PC, and reply data to it
         * 
         * @param in
         * @param out
         */
        void talk(InputStream in, OutputStream out) {
            Log.d(TAG, "startSession!");

            DataInputStream dis = new DataInputStream(in);
            DataOutputStream dos = new DataOutputStream(out);

            /******** 1??read command *******/

            String cmd;
            try {
                cmd = dis.readUTF();
                Log.d(TAG, "CMD: " + cmd);
            } catch (IOException e1) {
                e1.printStackTrace();
            }

            /******** 2??reply client *******/
            try {
                replyClient(dos);
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

            /******** 3??wait ack *******/
            try {
                String ack = dis.readUTF();
                Log.d(TAG, "ACK: " + ack);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        /**
         * 1)??? 2)???? 3)??????? 4)??????CTS 5)???? 6)???? 7)????????? 8)UID 1)???? 2)???? 3)????
         * 4)??????? 5)??????CTS 6)????????? 7)UID 8)???
         * 
         * @param dos
         * @throws IOException
         */
        void replyClient(DataOutputStream dos) throws IOException {
            Log.d(TAG, "replyClient!");

            DviceInfoCollector deviceInfo = new DviceInfoCollector(SmartToolService.this);
            byte[] data = deviceInfo.toBytes();
            
            Log.d(TAG, "data.len!" + data.length);

            GZIPOutputStream gos = new GZIPOutputStream(dos);
            gos.write(data);
            dos.flush();
            gos.finish();
        }
    });

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

}




Java Source Code List

com.nj.simba.BatteryReceiver.java
com.nj.simba.DaemonController.java
com.nj.simba.DeviceInfo.java
com.nj.simba.DviceInfoCollector.java
com.nj.simba.IDeviceInfo.java
com.nj.simba.PackageReceiver.java
com.nj.simba.SdcardStatuChangeReceiver.java
com.nj.simba.SmartToolService.java
com.nj.simba.app.MainFrame.java
com.nj.simba.app.SmartToolsApp.java
com.nj.simba.app.ToolbarPanel.java
com.nj.simba.base.IDeviceListener.java
com.nj.simba.base.IDeviceReqListener.java
com.nj.simba.connect.DeviceCmdWorker.java
com.nj.simba.connect.DeviceConnectWorker.java
com.nj.simba.connect.DeviceMessage.java
com.nj.simba.connect.DeviceMsgChannel.java
com.nj.simba.ctrls.FilerListRender.java
com.nj.simba.ctrls.ImageBtn.java
com.nj.simba.ctrls.LeftPanel.java
com.nj.simba.ctrls.MetroCoolBtn.java
com.nj.simba.ctrls.MyProgessBar.java
com.nj.simba.ctrls.SubPanel.java
com.nj.simba.ctrls.TabPanel.java
com.nj.simba.ctrls.ThemeButton.java
com.nj.simba.ctrls.ThemeLabel.java
com.nj.simba.ctrls.ToolbarBtn.java
com.nj.simba.cts.CtsResultReset.java
com.nj.simba.page.appmgr.AppTableRender.java
com.nj.simba.page.appmgr.DeviceAppTableModel.java
com.nj.simba.page.appmgr.PageAppMgr.java
com.nj.simba.page.device.DeviceListRender.java
com.nj.simba.page.device.DevicePanel.java
com.nj.simba.page.device.PageMyDevice.java
com.nj.simba.page.filer.FileTableRender.java
com.nj.simba.page.filer.PageFiler.java
com.nj.simba.page.logcat.ILogCatBufferChangeListener.java
com.nj.simba.page.logcat.LogCatMessageList.java
com.nj.simba.page.logcat.LogCatMessageParser.java
com.nj.simba.page.logcat.LogCatMessage.java
com.nj.simba.page.logcat.LogCatPidToNameMapper.java
com.nj.simba.page.logcat.LogCatReceiverFactory.java
com.nj.simba.page.logcat.LogCatReceiver.java
com.nj.simba.page.logcat.PageLogcat.java
com.nj.simba.utils.Config.java
com.nj.simba.utils.FileSyncHelper.java
com.nj.simba.utils.I2CTest.java
com.nj.simba.utils.IProgressMonitor.java
com.nj.simba.utils.SyncProgressHelper.java
com.nj.simba.utils.SyncProgressMonitor.java
com.nj.simba.utils.Utils.java