我正在开发汽车加速跟踪应用程序.我使用标准加速度计,事先在特定位置校准.
然后,假设手机的方向没有改变,我将加速度计数据记录了指定的时间并计算了移动参数,其中一个是测试结束时的汽车速度.
它在一条平直的水平道路上工作得相当好:几个百分点的误差.
但后来我发现,在API级别10中有一个叫做的虚拟传感器TYPE_LINEAR_ACCELERATION,据我所知,它必须做我需要的东西:过滤重力,方向变化 - 所以我可以使用它并获得纯粹的线性加速度移动设备.
但在现实生活中......
我做了一个简单的应用程序,做了一点测试:
//public class Accelerometer implements SensorEventListener { ...
public void onSensorChanged(SensorEvent se)
{
if(!active)
return;
lastX = se.values[SensorManager.DATA_X];
lastY = se.values[SensorManager.DATA_Y];
lastZ = se.values[SensorManager.DATA_Z];
long now = System.currentTimeMillis();
interval = now - lastEvetn;
lastEvetn = now;
out.write(Float.toString(lastX) + ";" +
Float.toString(lastY) + ";" +
Float.toString(lastZ) + ";" +
Long.toString(interval) + "\n");
}
Run Code Online (Sandbox Code Playgroud)
我用以下参数绑定一个监听器:
mSensorManager.registerListener(linAcc,
mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION),
SensorManager.SENSOR_DELAY_GAME);
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是当我分析数据转储时,计算速度,比如V = V0 + AT,V0 = 0首先,然后 - 之前的间隔速度,A = …
今天Netbeans发现了android插件的新更新.我安装了它.在那之后,我的所有项目都"破坏了平台",而不是Android.2.3.我再次选择平台后,在项目属性中,它看起来没问题.但我无法构建项目 - 我得到错误build.xml:77:未设置Android目标.
我没有改变我的项目中的任何内容,现在他们只是不构建..任何想法?
这里类似的线程没有帮助的答案...我想创建带文件附件的电子邮件,文件在内部存储上.这是代码:
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{email});
i.putExtra(Intent.EXTRA_SUBJECT, "Smart Weight Tracker");
i.putExtra(Intent.EXTRA_TEXT , "CSV file is in attachment");
Uri uri;
if(useExternal){
uri = Uri.fromFile(new File(this.getExternalFilesDir(null),fname));
}
else{
File f = new File(this.getFilesDir(),fname);
f.setReadable(true, false);
f.setWritable(true, false);
uri = Uri.fromFile(f);
}
i.putExtra(Intent.EXTRA_STREAM, uri);
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
它与外部存储完美配合,但在使用内部存储时我没有附加功能.我检查了 - 文件打开,(通过显示Toast在我的应用程序中的长度 - 是的,> 0).
我这样写:
OutputStreamWriter out =
new OutputStreamWriter(con.openFileOutput(fname, Context.MODE_WORLD_READABLE));
Run Code Online (Sandbox Code Playgroud)
在logcat我看到了
I/Gmail …Run Code Online (Sandbox Code Playgroud) 我无法找到如何使用CoreLocation来获取设备获得的卫星数量的信息。在我的Android应用程序中,我有类似的信息,我希望在我的iOS应用程序中拥有它。有任何想法吗?
我正在使用 MultipartEntityBuilder,我想在服务器上发送图像。我有图像 Uri。图像可能是本地的,也可能不是本地的,所以我获取输入流并以这种方式发送:
HttpClient httpclient = new DefaultHttpClient();
JSONObject result;
HttpPost httppost = new HttpPost("http://www.ezduki.ru/api/content/add/image/");
InputStream iStream = con.getContentResolver().openInputStream(imageUri);
MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addTextBody("token", code);
multipartEntity.addBinaryBody("file", iStream);
httppost.setEntity(multipartEntity.build());
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
result = new JSONObject(EntityUtils.toString(entity));
Run Code Online (Sandbox Code Playgroud)
其中 con 是我的主要活动上下文(代码在 AsyncTask 中运行)。我正在尝试发送本地文件,结果从网络服务器收到错误,这是来自网络服务器的日志:
[2013 年 12 月 13 日星期五 10:01:03] [错误] [客户端 93.157.241.232] (70014)找到文件结尾:mod_wsgi (pid=28449):无法获取 Bucket brigade 的请求。[2013 年 12 月 13 日星期五 15:01:03] [错误] 错误:django.request:内部服务器错误:/api/content/add/image/ [2013 年 12 月 13 日星期五 15:01:03] [错误] 回溯(大多数最近的通话最后一次):[Fri Dec 13 …