小编Alb*_*iir的帖子

如何让Android手机定位与人性化方向相匹配?

我正在创建一个地图应用程序,包括显示您面向哪个方向的位置箭头,如下所示:

用蓝色箭头映射

SensorManager.getOrientation()使用第一个返回值:azimuth 直接从中获取方向.当手机被按住以使屏幕指向地平线以上时,并且在纵向中,箭头正常工作.然而:

  • 当手机被按住使屏幕指向地平线以下时,箭头指向与用户面向的方向成180度.
  • 当手机被拿着使得屏幕的面对与地平线保持水平时,箭头不知道它指向哪个方向.Azimuth根本没有返回有意义的结果.
  • 当手机向左或向右倾斜(或以横向模式保持)时,箭头向左或向右倾斜.

下面精心构造和科学的图像显示了我的意思(蓝色是用户面对的,红色是箭头方向,屏幕大致面向用户的脸,Google地图完全符合我的要求):

关于我想要什么发生的图表

(请注意,使用谷歌地图,如果自动旋转关闭,它就无法成功执行列表中的最后两个操作.但我甚至还没有达到那个阶段.一次只做一件事.)

它似乎只是使用Y轴指向方向,如下所示:http://developer.android.com/reference/android/hardware/SensorEvent.html,当我希望它使用Z轴指向的反向,大部分时间,和手机平坦时的Y. 但是,考虑到getOrientation()返回的值,我必须编写复杂的案例来解决一些问题,而面向电话的用例是无法解决的.我确信有一种更简单的方法.

这是我的代码(其中lastAcceleration和lastMagneticField都来自内部传感器):

float[] rotationMatrix = new float[9];
if(SensorManager.getRotationMatrix(rotationMatrix, null, lastAcceleration, lastMagneticField)){
    float[] orientMatrix = new float[3];
    SensorManager.getOrientation(rotationMatrix, orientMatrix);

    orientation = orientMat[0]*180/(float)Math.PI;
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?有更简单的方法吗?

编辑:只是为了澄清,我假设用户正在将设备放在他们面前,屏幕指向他们.除此之外,我显然无法分辨是否只有其中一个旋转.此外,我正在使用用户移动时的动作,但这是在他们静止的时候.

android sensor

27
推荐指数
2
解决办法
9940
查看次数

将android库项目添加到android项目可防止Ant构建

我正在将android库项目添加到我的Android应用程序(在本例中为Beintoo).不是我的; 这是一个外部图书馆.但是,它没有build.xml.在Eclipse中构建工作正常,但是当我尝试使用ant构建我的应用程序时,我得到了这个:

BUILD FAILED
C:\Sandbox\MyProject\build.xml:110: The following error occurred while executing this line:
C:\Sandbox\MyProject\build.xml:41: The following error occurred while executing this line:
C:\Program Files (x86)\Android\android-sdk\tools\ant\build.xml:515: Invalid file: C:\Git\Beintoo-Android\beintoo-android-sdk\BeintooSDK\build.xml
Run Code Online (Sandbox Code Playgroud)

这是完全正确的.该文件无效,因为它不存在.我不知道如何安全地添加它,也不知道这是一个好主意.

我了解到我不能简单地将库项目构建到jar中.如何使用此库项目使我的项目在Ant中构建?

android

21
推荐指数
2
解决办法
9214
查看次数

查看由Android应用程序创建的私人文件

我有一个由设置为MODE_PRIVATE的应用程序编写的xml文件,但我现在想要在手机外读取该文件,以进行调试.在Eclipse中,我可以访问应用程序生成的其他文件并将它们复制到我的计算机上,但我甚至看不到这个私有文件.仅将文件更改为MODE_WORLD_READABLE文件似乎没有帮助.我认为该文件存储在无法从手机中删除的内部"SD卡"上,但文件资源管理器中还有两个其他文件夹为空或无法访问:asec和安全.

有谁知道如何访问该文件?

android private file

20
推荐指数
2
解决办法
3万
查看次数

"忽略InnerClasses属性"警告正在杀死Eclipse

我有几个导入的jar在项目构建时在Eclipse中出现此错误:

[2011-04-08 16:31:48 - MokbeeAndroid] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
(net.sf.antcontrib.logic.ForEach$1) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it …
Run Code Online (Sandbox Code Playgroud)

eclipse apache jar maven

13
推荐指数
2
解决办法
7570
查看次数

如何在AWS Dynamo中获取列的唯一值?

比如,在AWS Dynamo中,我有一个这样的表:

ID (HKey)   Date (RKey)   BoxName
0           1/1/2014      Box-1
1           2/1/2014      Box-1
2           3/1/2014      Box-2
3           4/1/2014      Box-3
4           5/1/2014      Box-3
5           5/1/2014      Box-1
Run Code Online (Sandbox Code Playgroud)

我想在一个查询中获取每个唯一Box的第一行.可能有数百个盒子我需要第一次进入,使个别请求效率低下.

我似乎无法在API中找到允许我这样做的任何内容.可能吗?我该怎么做?

amazon-web-services amazon-dynamodb

6
推荐指数
1
解决办法
5434
查看次数

为什么我的程序不能删除它在Win7下创建的文件?

我在Eclipse中创建了一个Java程序.我从Windows XP开始,但最近升级了.

作为其保存机制的一部分,程序将设置写入文件settings_new.sav.如果可以,它会删除settings.sav,并重命名新的名称以匹配旧名称.虽然它在winXP下工作(至少我认为它确实如此,但我现在无法检查),在win7下,它无法删除文件,即使它是创建它的程序(尽管,程序的不同实例) ).

该文件由Eclipse拾取,可以很愉快地从那里删除.我可以手动删除它.我是自己计算机上的管理员.该文件夹位于工作区文件夹内,并且不在Program Files中(但是,我不知道最终用户是否会在那里安装它).该程序可以很好地创建和修改文件.它不会抛出任何异常,我认为如果它是win7阻止它.

有任何想法吗?

java eclipse windows-7

5
推荐指数
1
解决办法
1488
查看次数

当名称可以是任何语言时,如何按名称索引postgres表?

我有一个大的postgres位置(商店,地标等)表,用户可以通过各种方式搜索.当用户想要搜索某个地点的名称时,系统当前会这样做(假设搜索在咖啡馆):

lower(location_name) LIKE '%cafe%'
Run Code Online (Sandbox Code Playgroud)

作为查询的一部分.这非常低效.这是非常的.我必须加快速度.我试过索引表

gin(to_tsvector('simple', location_name))
Run Code Online (Sandbox Code Playgroud)

和搜索

(to_tsvector('simple',location_name) @@ to_tsquery('simple','cafe'))
Run Code Online (Sandbox Code Playgroud)

它工作得很漂亮,并且将搜索时间减少了几个数量级.

但是,位置名称可以是任何语言,包括中文等不是以空格分隔的语言.这个新系统无法找到任何中文位置,除非我搜索确切的名称,而旧系统可以找到与部分名称匹配就好了.

所以,我的问题是:我可以让它同时适用于所有语言,还是我走错了路?

postgresql indexing localization tokenize string-comparison

5
推荐指数
1
解决办法
912
查看次数

为什么这些Google卫星地图图块链接停止工作?

前段时间,我的Android地图应用程序停止获取谷歌卫星瓷砖.现在它已经成为最重要的问题,我已经跟踪了代码并发现它创建了这样的请求:

http://khm3.google.com/kh/v=65&x=30147&y=19664&z=15&s=

链接显示它已被破坏.编写代码的人是唯一一个在我之前工作的应用程序,在我受雇之前离开,并且没有记录任何内容.我不知道这个链接应该做什么,因为我无法在Google Map Api中找到它,即使是已弃用的版本.有没有人知道这个链接用于连接,为什么它不再有效,以及如何修复它?

google-maps

2
推荐指数
1
解决办法
2433
查看次数

为什么getCallingActivity总是返回null?

我有一个欢迎屏幕可以作为我的应用程序中的第一个活动启动,或者它可以由用户花费时间的主要活动启动.我希望它从主屏幕启动时的行为略有不同(或者任何其他应用程序)或主要活动.

getCallingActivity()无论调用什么活动,调用onCreate似乎总是返回null.这很奇怪,因为它确实更早发挥作用,这就是我如何找到字符串返回的格式(无论如何应该在文档中).我看不出会有什么影响它,因为在调用之前发生的唯一事情getCallingActivity()是调用super.onCreate(savedInstanceState).我打电话给活动startActivityForResult(welcomeIntent, RESULT_WELCOME).

我究竟做错了什么?有没有其他方法来获取此信息?

android android-activity

2
推荐指数
3
解决办法
8879
查看次数

如何将JFrame制作成一定大小,不包括边框?

我有一个JFrame,我使用setBounds设置为一定的大小.然而,这使得窗口(包括边框)的大小(事后才能完全理解).但我想要的是窗口的大小,比如800x600 加上边框.这很重要,因为我从JFrame中的BufferStategy绘制了一个Graphics对象,但是当使用小于20的y值时,我一直在标题栏下绘图.我想象不同的操作系统(甚至不同的操作系统设置)也可以有不同的厚度边框.我以为边界刚刚在窗户上被钉上了,但事实并非如此.

那么,无论边框的厚度如何,如何使边框内的空间达到一定的大小?另外,为了让我的生活更轻松,我如何让点0,0成为框架可视内容的左上角?

顺便说一句,使用setUndecorated提出了它自己的问题,所以我现在不是在尝试.

java size swing jframe

1
推荐指数
3
解决办法
3万
查看次数