Java 传感器模拟器在连接时抛出错误

Java 传感器模拟器在连接时抛出错误,java,android,sensors,Java,Android,Sensors,我刚开始Android编程,我想尝试一下SensorSimulator。 一旦它到达要连接的点,我就会得到以下错误: 11-07 08:54:45.195: E/AndroidRuntime(1912): FATAL EXCEPTION: main 11-07 08:54:45.195: E/AndroidRuntime(1912): java.lang.RuntimeException: Unable to start activity ComponentInfo{fnt.android1/f

我刚开始Android编程,我想尝试一下SensorSimulator。 一旦它到达要连接的点,我就会得到以下错误:

11-07 08:54:45.195: E/AndroidRuntime(1912): FATAL EXCEPTION: main
11-07 08:54:45.195: E/AndroidRuntime(1912): java.lang.RuntimeException: Unable to start activity ComponentInfo{fnt.android1/fnt.android1.ValuesActivity}: android.os.NetworkOnMainThreadException
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.os.Looper.loop(Looper.java:137)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.ActivityThread.main(ActivityThread.java:5103)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.lang.reflect.Method.invokeNative(Native Method)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.lang.reflect.Method.invoke(Method.java:525)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at dalvik.system.NativeStart.main(Native Method)
11-07 08:54:45.195: E/AndroidRuntime(1912): Caused by: android.os.NetworkOnMainThreadException
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at libcore.io.IoBridge.connect(IoBridge.java:112)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.net.Socket.startupSocket(Socket.java:566)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.net.Socket.tryAllAddresses(Socket.java:127)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.net.Socket.<init>(Socket.java:177)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at java.net.Socket.<init>(Socket.java:149)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at org.openintents.sensorsimulator.hardware.SensorSimulatorClient.connect(SensorSimulatorClient.java:116)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at org.openintents.sensorsimulator.hardware.SensorManagerSimulator.connectSimulator(SensorManagerSimulator.java:220)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at fnt.android1.ValuesActivity.onCreate(ValuesActivity.java:26)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.Activity.performCreate(Activity.java:5133)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-07 08:54:45.195: E/AndroidRuntime(1912):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-07 08:54:45.195: E/AndroidRuntime(1912):     ... 11 more
11-07 08:54:45.195:E/AndroidRuntime(1912):致命异常:main
11-07 08:54:45.195:E/AndroidRuntime(1912):java.lang.RuntimeException:无法启动活动组件信息{fnt.android1/fnt.android1.ValuesActivity}:android.os.NetworkOnMainThreadException
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.ActivityThread.access$600(ActivityThread.java:141)
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.os.Handler.dispatchMessage(Handler.java:99)上
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.os.Looper.loop(Looper.java:137)
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.ActivityThread.main(ActivityThread.java:5103)上
11-07 08:54:45.195:E/AndroidRuntime(1912):位于java.lang.reflect.Method.Invokenactive(本机方法)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于java.lang.reflect.Method.invoke(Method.java:525)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-07 08:54:45.195:E/AndroidRuntime(1912):在dalvik.system.NativeStart.main(本机方法)
11-07 08:54:45.195:E/AndroidRuntime(1912):由以下原因引起:android.os.NetworkOnMainThreadException
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
11-07 08:54:45.195:E/AndroidRuntime(1912):在libcore.io.IoBridge.connecterNo(IoBridge.java:127)
11-07 08:54:45.195:E/AndroidRuntime(1912):在libcore.io.IoBridge.connect(IoBridge.java:112)
11-07 08:54:45.195:E/AndroidRuntime(1912):在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
11-07 08:54:45.195:E/AndroidRuntime(1912):在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于java.net.Socket.startupSocket(Socket.java:566)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于java.net.Socket.tryalladdress(Socket.java:127)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于java.net.Socket(Socket.java:177)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于java.net.Socket(Socket.java:149)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于org.openintents.sensorsimulator.hardware.SensorSimulatorClient.connect(SensorSimulatorClient.java:116)
11-07 08:54:45.195:E/AndroidRuntime(1912):位于org.openintents.sensorsimulator.hardware.SensorManagerSimulator.connectSimulator(SensorManagerSimulator.java:220)
11-07 08:54:45.195:E/AndroidRuntime(1912):在fnt.android1.ValuesActivity.onCreate(ValuesActivity.java:26)
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.Activity.performCreate(Activity.java:5133)上
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-07 08:54:45.195:E/AndroidRuntime(1912):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-07 08:54:45.195:E/AndroidRuntime(1912):。。。还有11个
我确信它连接到了正确的IP并使用了正确的端口。 这是我的全部代码:

package fnt.android1;


import android.os.Bundle;
import android.app.Activity;
import android.hardware.SensorManager;
import android.view.Menu;


import org.openintents.sensorsimulator.hardware.Sensor;
import org.openintents.sensorsimulator.hardware.SensorEvent;
import org.openintents.sensorsimulator.hardware.SensorEventListener;
import org.openintents.sensorsimulator.hardware.SensorManagerSimulator;

public class ValuesActivity extends Activity implements SensorEventListener {

    private SensorManagerSimulator mSensorManager;
    private Sensor mLight;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_values);

        mSensorManager = SensorManagerSimulator.getSystemService(this, SENSOR_SERVICE);
        mSensorManager.connectSimulator();
        mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.values, menu);
        return true;
    }


    protected void onResume() {
        super.onResume();
        mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_FASTEST);

        System.out.println("Event registered!");
    }

    protected void onPause() {
        super.onPause();
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        for(int i = 0; i < event.values.length; i++) {
            System.out.println(event.values[i]);
        }
    }

}
包fnt.android1;
导入android.os.Bundle;
导入android.app.Activity;
导入android.hardware.SensorManager;
导入android.view.Menu;
导入org.openintents.sensorsimulator.hardware.Sensor;
导入org.openintents.sensorsimulator.hardware.SensorEvent;
导入org.openintents.sensorsimulator.hardware.SensorEventListener;
导入org.openintents.sensorsimulator.hardware.sensormanager模拟器;
公共类值活动扩展活动实现SensorEventListener{
专用传感器管理器模拟器传感器管理器;
私用感应灯;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_值);
mSensorManager=SensorManagerSimulator.getSystemService(此为传感器服务);
mSensorManager.connectSimulator();
mLight=mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.values,menu);
返回true;
}
受保护的void onResume(){
super.onResume();
mSensorManager.registerListener(this、mLight、SensorManager.SENSOR\u DELAY\u faster);
System.out.println(“事件已注册!”);
}
受保护的void onPause(){
super.onPause();
}
@凌驾
精度更改时的公共无效(传感器,int精度){
//TODO自动生成的方法存根
}
@凌驾
传感器更改时的公共无效(传感器事件){
对于(int i=0;i
logcat表示您正试图在主UI
线程上运行网络调用。您应该将长时间运行的操作移动到单独的
Thead
。您可以使用
AsyncTask
或常规
线程来执行此操作。

的可能副本