public class MainActivity extends Activity implements SensorEventListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
b = (Button)findViewById(R.id.button2);
err = (TextView)findViewById(R.id.errors);
mSensorManager = (SensorManager) getSystemService(Activity.SENSOR_SERVICE);
mRotationSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR);
mSensorManager.registerListener(this, mRotationSensor, SENSOR_DELAY);
} catch (Exception e) {
Toast.makeText(this, "Hardware compatibility issue", Toast.LENGTH_LONG).show();
}
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
try{
Socket s = new Socket("10.0.0.7", 5555);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String outMsg = "";
outMsg = "This is Client";
out.write(outMsg);
out.flush();
out.close();
s.close();
err.setText("sending");
}
catch(Exception ex){
err.setText("error"+ex.toString());
}
}
});
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor == mRotationSensor) {
if (event.values.length > 4) {
float[] truncatedRotationVector = new float[4];
System.arraycopy(event.values, 0, truncatedRotationVector, 0, 4);
update(truncatedRotationVector);
} else {
update(event.values);
}
}
}
private void update(float[] vectors) {
float[] rotationMatrix = new float[9];
SensorManager.getRotationMatrixFromVector(rotationMatrix, vectors);
int worldAxisX = SensorManager.AXIS_X;
int worldAxisZ = SensorManager.AXIS_Z;
float[] adjustedRotationMatrix = new float[9];
SensorManager.remapCoordinateSystem(rotationMatrix, worldAxisX, worldAxisZ, adjustedRotationMatrix);
float[] orientation = new float[3];
SensorManager.getOrientation(adjustedRotationMatrix, orientation);
float pitch = orientation[1] * FROM_RADS_TO_DEGS;
float roll = orientation[2] * FROM_RADS_TO_DEGS;
((TextView)findViewById(R.id.pitch)).setText("Pitch: "+pitch);
((TextView)findViewById(R.id.roll)).setText("Roll: "+(roll-90));
}
我该怎么修好它?或者请将我转到关于该主题的教程。
在AndroidManifest.xml文件中添加INTERNET权限:
<uses-permission android:name="android.permission.INTERNET"/>
并且不要在UI线程中访问,Android禁止这样做.必须在其他线程中访问internet.
按以下代码段更改代码:
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
new Thread(){
@Override
public void run() {
try{
Socket s = new Socket("10.0.0.7", 5555);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String outMsg = "";
outMsg = "This is Client";
out.write(outMsg);
out.flush();
out.close();
s.close();
runOnUiThread(new Runnable() {
@Override
public void run() {
err.setText("sending");
}
});
}catch(Exception ex){
runOnUiThread(new Runnable() {
@Override
public void run() {
err.setText("error"+ex.toString());
}
});
}
}
}.start();
}
我得到了一个Android应用程序,但当我启动它时,我得到了一个错误在我的控制台。我正在使用一个数据报套接字创建连接,并且使用了两个类:(这是应用程序的主要活动)和来创建连接。 这里的代码MainActivity: 但它不起作用。
我收到错误消息 这是我的清单文件: 如何修复此问题?
以及我的logcat: 我真的很感谢你的时间,因为这将节省我的大量时间:)干杯,
我已经找到了所有的解决方案并应用到我的项目中。但它们不起作用。我被拒绝了这个许可。我已经把所有可能的许可都放进了清单文件。请告诉我我的项目出了什么问题。 我的manifest.xml Logcat:
问题内容: 我运行 npm install lodash, 但它抛出 错误:EACCES:权限被拒绝 错误。我知道这是权限问题,但据我所知,本地安装节点模块不需要sudo权限。如果我使用sudo运行它,它将安装在〜/ node_modules文件夹中。 drwxrwxr-x 是现有文件夹的文件许可权。我不知道可能出了什么问题。 下面是错误消息。 问题答案: 使用 npm init 创建 packa