我正在尝试新的Google Play游戏服务.
起初我按照这个方法https://developers.google.com/games/services/android/quickstart ,然后完成了这个https://developers.google.com/games/services/android/init
我最终是这样的:
05-16 20:01:39.034: E/AndroidRuntime(18257): FATAL EXCEPTION: main
05-16 20:01:39.034: E/AndroidRuntime(18257): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$f.a(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$f.a(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$b.p(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$a.handleMessage(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.os.Handler.dispatchMessage(Handler.java:99)
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.os.Looper.loop(Looper.java:137)
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-16 20:01:39.034: E/AndroidRuntime(18257): at java.lang.reflect.Method.invokeNative(Native Method)
05-16 20:01:39.034: E/AndroidRuntime(18257): at java.lang.reflect.Method.invoke(Method.java:511)
05-16 …Run Code Online (Sandbox Code Playgroud) 我正在使用这个电话:
Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
Run Code Online (Sandbox Code Playgroud)
获取设备的UID.我想我从多个设备获得相同的ID.这有可能吗?
相关ID是:9774d56d682e549c,显然有几个设备返回此ID的问题http://code.google.com/p/android/issues/list?cursor=10603&updated=10603&ts=1295993403
我正在制作一个游戏,玩家可以在屏幕上拖放东西.我有一个私有方法,允许我为玩家可以移动的任何项目模拟拖放事件.对于拖动,我实际上离开视图他们触摸它的位置并创建一个新的ImageView,并从触摸的视图中将drawable设置为drawingCache,然后在他们的手指上围绕屏幕移动这个新创建的ImageView.当你松开手指(放下视图)时,我打电话myLayout.remove(movingImg);让它离开屏幕.我有一个问题,如果我开始一个模拟的拖动事件,然后手动拿起其他一个项目,我在myLayout.remove()调用上得到一个空指针,这里是来自日志的跟踪:
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): java.lang.NullPointerException
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2122)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.drawChild(ViewGroup.java:2506)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2123)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.drawChild(ViewGroup.java:2506)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2123)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.drawChild(ViewGroup.java:2506)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2123)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.drawChild(ViewGroup.java:2506)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2123)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.View.draw(View.java:9032)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.widget.FrameLayout.draw(FrameLayout.java:419)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1910)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewRoot.draw(ViewRoot.java:1608)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): at android.view.ViewRoot.performTraversals(ViewRoot.java:1329)
04-06 10:37:43.610: ERROR/AndroidRuntime(23203): …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个应用程序,该应用程序将在后台运行一个能够将触摸屏事件注入任何正在运行的活动的服务.我可以通过调用将事件注入到我的应用程序的一部分Activity中Instrumentation.sendPointerSync(motionEvent);但是如果我尝试在没有运行应用程序的活动的情况下执行此操作,则会收到权限错误,说我没有INJECT_EVENTS权限.我已将此权限添加到我的清单中,但是<uses-permission android:name="android.permission.INJECT_EVENTS"></uses-permission>它仍然会抛出相同的权限异常.经过一些搜索,我得到了答案,为了获得INJECT_EVENTS权限,您的应用必须使用与系统签名相同的签名进行签名.但我不清楚这究竟是什么意思.我将不得不找到一个自定义rom构建它并使用与该应用程序签名相同的签名对其进行签名.然后在我的设备上安装自定义ROM,然后安装我的应用程序,我将能够正确地注入触摸事件?如果是这样的话是我最好与已放在一起,就像一个自定义ROM开始从该页面或者是我要去的地方需要抢Android项目的git的副本,并建立整个事情的情况myslef?无论哪种方式,任何人都知道你可以指向我的地方,这会让我朝着正确的方向努力实现这一目标吗?
我知道你们可能已经厌倦了这些帖子,但为什么当我按下音量时没有任何事情发生?我只是想制作一个简单的代码,但显然它不起作用.
package com.cakemansapps.lightwriter;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.FrameLayout;
import android.view.KeyEvent;
import android.util.Log;
public class LightWriter extends Activity implements OnTouchListener {
private static final String TAG = "Touch" ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FrameLayout main = (FrameLayout) findViewById(R.id.main_view);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
{
Log.w("LightWriter", "I WORK BRO.");
return true;
}
return super.onKeyLongPress(keyCode, event);
}
public boolean onTouch(View view, MotionEvent me) { …Run Code Online (Sandbox Code Playgroud) 我有一个带有VideoView的应用程序,我设置了一个视频在VideoView中播放.在视频播放的某个时刻,它将暂停.然后在暂停一段时间后,它将再次开始播放视频,但是如果视频没有暂停,则向前搜索视频的位置.所以举个例子
视频开始播放
视频暂停6秒
视频暂停10秒钟
视频再次开始播放<---此时我希望视频以16秒标记开始播放.
为了达到这个效果,我设置了时间戳来完成所需的数学运算,所以我知道视频暂停了多长时间,然后当我再次启动时,我打电话 mVideoView.seekTo(timePlayed + timePaused);
这一切都适用于Toshiba Thrive和Motorola Xoom.但是在Acer Iconia A200上似乎从我调用seekTo()向前看,VideoView将始终在我调用的同时返回getCurrentPosition().为了说明这一点,我设置了一个runnable,它大约每1000ms触发一次,记录当前位置.以下是一些输出:
/****************
* These are from before it is paused/resumed
* you can see that the current time is functioning
* as expected.
******************/
Current Position = 0
Current Position = 734
Current Position = 1735
Current Position = 2703
Current Position = 3737
Current Position = 4738
Current Position = 5739
Current Position = 6740
Current Position = 7741
Current Position = 8742
Current …Run Code Online (Sandbox Code Playgroud) android timestamp seek android-mediaplayer android-videoview
我有使用RelativeLayout的经验,但我从来没有遇到过一种方法来解决我提出的问题(除了硬编码边距值,我想避免.)
我想尝试在RelativeLayout中创建类似下图的内容:

该框是它自己的视图,我想让包含橙色圆圈的视图居中在包含蓝色框的视图的右上角.
我尝试了android:alignTop="boxView",android:alignRight="boxView"但是把我的橙色圆圈完全放在我的盒子里.我希望它是这样圆圈位于盒子右上角的中心.
有人知道如何通过RelativeLayout获得结果吗?优选地,不必为了橙色点视图而将边缘硬编码远离屏幕的边缘.
我有一个RelativeLayout有两个孩子,也RelativeLayout包含几个按钮和东西.这些子布局不是在我的主布局中居中,主布局确实包含了这两个方面的一些其他东西.我希望第一个在第二个之上.这很容易,只需android:layout_below="@+id/firstLayout"在第二个使用.但我也希望第二个在第一个的中心对齐.我的意思是我想要第二个布局找到第一个布局的中心,并对齐自己,使其中心位于相同的x位置.我明白了alignLeft, alignRight, alignTop, and alignBaseline,但没有中心.是否可以这样做而不必硬编码边距来扫描第二个布局?
这是我想要最终得到的一个粗略的例子,蓝色条将是第一个布局,红色框将是第二个布局.我知道我可以将它们包装在另一个RelativeLayout大小相等的区域中"wrap_content",然后centerHorizontal="true"用于第二个区域.但我真的宁愿把两个都留作我的主要布局的孩子(如果我让他们成为一个单独布局的孩子,我将不得不对我的应用程序的某些部分的工作方式进行一些更改.我试图避免这种情况.)

我正在设计一个应用程序,有几个按钮供用户点击.单击按钮后,用户将被定向到相应的网站.我该如何做到这一点?
从API 14开始,您可以SYSTEM_UI_FLAG_HIDE_NAVIGATION在Activity中的View上使用此标志,告诉系统您要隐藏导航栏,直到有用户交互(屏幕触摸).一旦用户点击屏幕,就会显示该栏.
我正在执行此操作的活动在用户触摸屏幕时执行一些操作(启动单独的活动),然后将上述标记添加到我的视图中,这非常有效.
添加该标志后,系统会截取第一个屏幕触摸,并通过显示导航栏对其做出反应.直到第二次触摸,我的任何视图或我的活动才会收到TouchEvents.
有没有人知道我可以设置一个监听器的方式,让我在第一次触摸屏幕时启动我的第二个活动,而不是在使用这个隐藏导航标志时需要双击?
我已经尝试了以下所有内容,当第一次触摸屏幕以显示导航栏时,我没有收到任何回调.
@Override
public void onUserInteraction(){
Log.i(myTag, "INTERACT");
}
@Override
public boolean onGenericMotionEvent(MotionEvent me){
Log.i(myTag, "GENERIC");
return true;
}
//I thought maybe the size change would lead to a callback here. No dice though.
@Override
public void onWindowAttributesChanged(WindowManager.LayoutParams params){
Log.i(myTag, "WINDOW CHANGE");
}
@Override
public boolean dispatchTouchEvent(MotionEvent me){
Log.i(myTag, "TOUCH");
return true;
}
Run Code Online (Sandbox Code Playgroud)
注意:我没有试图阻止导航栏在第一次触摸时显示,我只是想在该事件发生时采取一些其他操作.