小编Sim*_*mon的帖子

如何检测os或设备类型等系统信息

我想知道的最重要的事情是设备类型,操作系统版本,如果它有硬件键盘和屏幕分辨率.但如果您知道其他有用的调试信息,请添加它们:)

我发现这个OS版本:

string += "OS Version: " + System.getProperty("os.version");
Run Code Online (Sandbox Code Playgroud)

我如何获得其他房产?

debugging logging android properties

65
推荐指数
4
解决办法
7万
查看次数

如何结合OpenGL使用onSensorChanged传感器数据

(编辑:我在我的增强现实框架中添加了最好的工作方法,现在也考虑了陀螺仪,这使它再次更加稳定:DroidAR框架)

我编写了一个TestSuite来了解如何根据您获得的数据计算旋转角度SensorEventListener.onSensorChanged().我真的希望你能完成我的解决方案,以帮助那些像我一样遇到同样问题的人.这是代码,我想你会在阅读之后理解它.

随意改变它,主要的想法是实现几种方法将方向角发送到opengl视图或任何其他需要它的目标.

方法1到4正在工作,它们直接将rotationMatrix发送到OpenGl视图.

方法6现在也可以工作,但我没有解释为什么必须进行旋转yx z ..

所有其他方法都没有工作或有问题,我希望有人知道让他们工作.我认为最好的方法是方法5,如果它可行,因为它是最容易理解,但我不确定它是多么有效.完整的代码没有优化,所以我建议不要在项目中使用它.

这里是:

/**
 * This class provides a basic demonstration of how to use the
 * {@link android.hardware.SensorManager SensorManager} API to draw a 3D
 * compass.
 */
public class SensorToOpenGlTests extends Activity implements Renderer,
  SensorEventListener {

 private static final boolean TRY_TRANSPOSED_VERSION = false;

 /*
  * MODUS overview:
  * 
  * 1 - unbufferd data directly transfaired from the rotation matrix to the
  * modelview matrix
  * 
  * 2 …
Run Code Online (Sandbox Code Playgroud)

android opengl-es rotation matrix sensor

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

如何为Android创建自定义主屏替换应用程序?

如何创建主屏替换应用程序?有关于主屏幕应用程序的信息吗?

任何应用程序都可以通过注册CATEGORY_HOME意图来成为主屏幕吗?

android launcher homescreen

49
推荐指数
2
解决办法
5万
查看次数

在Eclipse中覆盖注释的错误

@Override在Eclipse中有一个令人讨厌的注释问题.通常,当我在新PC上导入工作项目时,Eclipse会将某些@Override注释标记为错误.如果我删除注释一切都很好,Eclipse也表示方法覆盖了父方法,但添加覆盖注释会再次导致错误.我目前正在开发一个Android项目,所以它可能是Android的问题,而不是Eclipse.

eclipse android overriding annotations

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

加密SharedPreferences中的数据

我正在开发oAuth 1和2访问webservices的框架,我的问题是,如何以安全的方式存储像oAuth访问密钥这样的敏感数据?这个键的问题在于某些平台如twitter会使用永久密钥,如果有人可以访问此密钥,他可以使用用户的Twitter帐户做任何他想做的事情.

那么在将数据存储到共享首选项之前是否可以自动加密数据?或者有更好的方式/地方存储非常重要的数据?

更新 - 另请阅读:在Android应用程序中存储用户设置的最合适方法是什么

encryption android oauth sharedpreferences

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

列表数据更改时更新Android ListActivity?

我想知道ListActivity当我更改/添加数据时如何刷新.

我首先想到的是,ListAdapter当列表发生更改时会知道,但是当我向列表添加元素时,没有更新ListActivity,只有当我关闭ListActivity并再次重新打开它时,我才会看到更改发生.

所以我搜索了任何方法,例如:update(), refesh()或类似的东西,但没有.似乎我没有得到这个概念,有人可以帮助我吗?

android listactivity android-listview

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

使用不带Gradle的multiDexEnabled而是使用Eclipse构建过程

从最新的SDK版本开始,使用多个dex文件创建应用程序要简单得多(https://developer.android.com/tools/building/multidex.html),我的问题是,当我使用这个新功能时也可以使用我没有使用Gradle构建过程,而是使用"旧的"Eclipse构建链?

Gradle构建文件中的"multiDexEnabled true"也必须以其他方式传递给Android编译器吗?

eclipse android dex android-gradle-plugin android-multidex

13
推荐指数
1
解决办法
2056
查看次数

使用Android帐户管理器验证在我的服务器上使用FB登录的用户

我有一个关于使用Android帐户管理器进行身份验证的问题.我们有一个后端和一个Android应用程序,用户应该使用他的Facebook帐户登录我们的后端.目前我们为此目的展示了一个webview,它可以正常运行oAuth 2,但使用Android帐户管理器对用户来说更安全,更容易,因此我们想切换.我的问题是,服务器如何验证用户是否真的是他假装的人.由于我们不能信任App,我们必须从服务器端与fb交谈以验证用户是否真的是他假装的人.根据一个非常相似的想法,我做了下面的图表,问你这是否是正确的方法,或者我错过了什么:

用户在 流程看起来像这样:

  1. 用户想要使用他的Facebook帐户登录
  2. 显示Android客户经理,他选择了Facebook账户
  3. 用户授予允许"我的应用"访问其fb数据的访问权限
  4. Android客户经理从Facebook服务器获取身份验证令牌
  5. "我的应用程序"现在具有身份验证令牌,可以访问用户的fb数据
  6. "我的应用程序"将tokten传递给"我的服务器"
  7. "我的服务器"现在通过从fb服务器获取用户数据来检查令牌是否有效
  8. 如果令牌有效,"我的服务器"会使用"我的应用程序"为当前会话返回正常的临时有效cookie.用户现在使用他的fb帐户登录My Server.

这是正确的方法吗?步骤6是一个好主意,将令牌传递给"我的服务器"还是有更好的方法?顺便说一句Facebook就是一个例子,我们使用不同的身份验证提供商,如FB,谷歌和Twitter,但每个人的流量应该是相同的.

authentication android facebook oauth accountmanager

11
推荐指数
1
解决办法
800
查看次数

10
推荐指数
2
解决办法
8408
查看次数

需要从Sensor.TYPE_ORIENTATION数据计算旋转矢量

我需要从Sensor.TYPE_ORIENTATION获得的数据中计算出一个旋转矢量.

传感器数据定义如下:

  • 必须重新计算这些值才能成为正确的3d位置:值[0]:方位角,磁北方向和Y轴之间的角度,绕Z轴(0到359).0 =北,90 =东,180 =南,270 =西
  • 1:俯仰,绕X轴旋转(-180到180),当z轴向y轴移动时为正值.
  • 值[2]:滚动,绕Y轴旋转(-90到90),当x轴远离z轴时带正值

我需要所有三个值,如Z轴值(从0到360度).我尝试了很多,但无法弄清楚如何做到这一点:/

(编辑:要查看工作代码背后的想法,请查看DroidAR框架ActionWithSensorProcessing类,您可以看到如何处理不同的事件类型.)

我还尝试使用Sensor.TYPE_ACCELEROMETER和Sensor.TYPE_MAGNETIC_FIELD来自行计算这个3d矢量.这是代码:

final float[] inR = new float[16];
// load inR matrix from current sensor data:
SensorManager.getRotationMatrix(inR, null, gravityValues, geomagneticValues);
float[] orientation = new float[3];
SensorManager.getOrientation(inR, orientation);
mapMagAndAcclDataToVector(orientation); //here i do some *360 stuff
orientetionChanged(orientation); //then the correct values are passed (in theorie)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我认为这很复杂.所以我打赌有一个简单的解决方案,如何重新计算ensor.TYPE_ORIENTATION的值,使它们成为一个3d旋转矢量,但我只是不知道该怎么做.如果你知道答案,请告诉我.

编辑:我应该添加,我想将值传递给OpenGL,使其与轴对齐,如下所示:

gl.glRotatef(values[1], 1, 0, 0);
gl.glRotatef(values[2], 0, 1, 0);
gl.glRotatef(values[0], 0, 0, 1);
Run Code Online (Sandbox Code Playgroud)

但由于奇怪的价值范围,我显然无法做到这一点.与SensorManager.getOrientation中的值相同的问题,因为当您通过水平线时它们也会翻转.

另一个解决方案是使用inR矩阵计算角度,但我认为必须有一个更简单的解决方案(?)

android opengl-es vector matrix sensor

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