我正在尝试GCM client
在Android上实现新功能.
有一次,您必须启用Google Services
该应用程序.启用后,Cloud Messaging
您必须下载文件google-services.json
并将其放在app/
或mobile/
目录中.问题是在我的eclipse项目中这个目录不存在.
所以我的问题是:我在哪里放这个文件?
我必须将字节转换为signed/unsigned int或short.
以下方法是正确的吗?哪个是签名的,哪个是未签名的?
字节顺序:LITTLE_ENDIAN
public static int convertTwoBytesToInt1(byte b1, byte b2) {
return (int) ((b2 << 8) | (b1 & 0xFF));
}
Run Code Online (Sandbox Code Playgroud)
VS.
public static int convertTwoBytesToInt2(byte b1, byte b2) {
return (int) (( (b2 & 0xFF) << 8) | (b1 & 0xFF));
}
Run Code Online (Sandbox Code Playgroud)
和
public static int convertFourBytesToInt1(byte b1, byte b2, byte b3, byte b4){
return (int) ((b4<<24)+(b3<<16)+(b2<<8)+b1);
}
Run Code Online (Sandbox Code Playgroud)
VS.
public static int convertFourBytesToInt2(byte b1, byte b2, byte b3, byte b4){
return (int) (( (b4 & 0xFF) << 24) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试GCM Client
按照Google的指南(https://developers.google.com/cloud-messaging/android/client)在Android 上实施新功能.我收到的两个不同设备的错误略有不同.我注意到我为两个设备接收方法getNoBackupFilesDir的NoSuchMethodError.
这是Android 4.2.2的logcat:
06-08 09:01:09.920: I/dalvikvm(9138): Could not find methodandroid.app.Notification$Builder.setLocalOnly, referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza
06-08 09:01:09.920: W/dalvikvm(9138): VFY: unable to resolve virtual method 273: Landroid/app/Notification$Builder;.setLocalOnly (Z)Landroid/app/Notification$Builder;
06-08 09:01:09.920: D/dalvikvm(9138): VFY: replacing opcode 0x6e at 0x00c2
06-08 09:01:09.920: I/dalvikvm(9138): DexOpt: access denied from Lcom/google/android/gms/common/GooglePlayServicesUtil; to field Landroid/app/Notification;.extras
06-08 09:01:09.920: W/dalvikvm(9138): VFY: unable to resolve instance field 12
06-08 09:01:09.920: D/dalvikvm(9138): VFY: replacing opcode 0x54 at 0x00e1
06-08 09:01:09.920: E/dalvikvm(9138): Could not find class 'android.app.AppOpsManager', referenced …
Run Code Online (Sandbox Code Playgroud) java eclipse android google-cloud-messaging google-play-services
我们可以使用以下功能获取屏幕上触摸位置的坐标:
public boolean onTouchEvent(MotionEvent event){
float x_forOnTouch = event.getX();
float y_forOnTouch = event.getY();
Run Code Online (Sandbox Code Playgroud)
究竟是什么getX()
和getY()
功能返回?是否返回像素值?当手指触摸屏幕位置时,它可能会触摸许多像素.那么函数究竟返回了什么?
再次,让我们假设在我用手指触摸的区域中,屏幕上有多个像素,如下所示:
假设我需要单击并拖动像素1处的点,但是我的手指触摸的区域覆盖像素1和2.如何准确检测哪个像素被点击,以便我可以单击并拖动像素1或2需要它?
当我点击注销按钮时,我希望清除浏览器缓存.
我正在尝试使用以下代码清除浏览器缓存:
if(uri.equals("/SciArchive/logout.sci"))
{
HttpSession session=req.getSession(false);
res.setHeader("Cache-Control","no-cache");
res.setHeader("Cache-Control","no-store");
res.setDateHeader("Expires", 0);
res.setHeader("Pragma","no-cache");
if(session!=null)
{
session.invalidate();
rd=req.getRequestDispatcher("/home.jsp");
}
rd.forward(req,res);
return;
}
Run Code Online (Sandbox Code Playgroud)
注销后在浏览器窗口中按下后退按钮时,我需要浏览器不显示上一页.
当我点击后退按钮时,它显示上一页,点击浏览器窗口中的前进按钮后显示document expired
.
请给我建议,以清除此错误!