package com.example.sensorsmart; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import android.app.Activity; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements SensorEventListener{ private static final int SERVERPORT = 8222; private static final String SERVER_IP = "192.168.0.101"; private SensorManager mSensorManager; private Sensor mAccelerometer; private TextView tv ; public ServerSocket serverSocket=null; public Socket socket = null; public BufferedReader in ; public BufferedWriter out; public PrintWriter pw ; public FileWriter writer=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new MyTask().execute(); mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); mAccelerometer mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); mSensorManager.registerListener(this, mAccelerometer,SensorManager.SENSOR_DELAY_NORMAL); } public void onStopClick(View view) { mSensorManager.unregisterListener(this);} private class MyTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... arg0) { try { serverSocket = new ServerSocket(8222); } catch (IOException e) { e.printStackTrace(); } try { socket=serverSocket.accept(); Log.i("TcpServer", "CONNECTED"); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); pw = new PrintWriter(socket.getOutputStream(),true); if(!in.ready()) { Log.i("TcpServer", "READER IS NOT READY"); } //HERE SOCKET works 5n..... final String g; final String c; String b = null; Log.i("TcpServer", "GOING"); g=in.readLine(); runOnUiThread(new Runnable() { public void run() { Toast.makeText(getApplicationContext(),g, Toast.LENGTH_LONG).show(); } }); } catch (IOException e) { e.printStackTrace(); String response = e.getCause().toString(); Log.i("TCP",response); } return null; } } @Override public void onSensorChanged(SensorEvent event) { float x = event.values[0]; float y = event.values[1]; float z = event.values[2]; /**************************************************/ SOCKET Shows null Inside this method /**************************************************/ pw.write("g"); //NULL POINT EXCEPTION THROWS HERE } }
02-06 11:31:54.250: E/AndroidRuntime(4108): FATAL EXCEPTION: main 02-06 11:31:54.250: E/AndroidRuntime(4108): java.lang.NullPointerException 02-06 11:31:54.250: E/AndroidRuntime(4108): at com.example.sensorsmart.MainActivity.onSensorChanged(MainActivity.java:196) 02-06 11:31:54.250: E/AndroidRuntime(4108): at android.hardware.SystemSensorManager$ListenerDelegate$1.handleMessage(SystemSensorManager.java:204) 02-06 11:31:54.250: E/AndroidRuntime(4108): at android.os.Handler.dispatchMessage(Handler.java:99) 02-06 11:31:54.250: E/AndroidRuntime(4108): at android.os.Looper.loop(Looper.java:137) 02-06 11:31:54.250: E/AndroidRuntime(4108): at android.app.ActivityThread.main(ActivityThread.java:4759) 02-06 11:31:54.250: E/AndroidRuntime(4108): at java.lang.reflect.Method.invokeNative(Native Method) 02-06 11:31:54.250: E/AndroidRuntime(4108): at java.lang.reflect.Method.invoke(Method.java:511) 02-06 11:31:54.250: E/AndroidRuntime(4108): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 02-06 11:31:54.250: E/AndroidRuntime(4108): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 02-06 11:31:54.250: E/AndroidRuntime(4108): at dalvik.system.NativeStart.main(Native Method)
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)