嗯,这段代码实际上已经集成到 QString 单元了,所以你可以直接调用 GetTimezone 函数来获得时区了。用 GetTimezoneText 可以获得时区的字符串表示。 代码不长,用起来也简单,它实际上返回的时区对应的分钟数,比如北京时间是480,也就是 8 小时,其它依次类推。使用 GetTimezonTe
标签: Android
[FMX] FMX.Graphics.Android 中对 GIF 判断的问题的修正
关于这个 Bug 的详情,大家可以参考:https://quality.embarcadero.com/browse/RSP-12424 Berlin 中的 FMX.Graphics.Android 实现的原始代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
class function TBitmapCodecAndroid.IsGIFStream(const Stream: TStream): Boolean; const IDCharCount = 3; var PrevPosition: Int64; Builder: TStringBuilder; I: Integer; Value: Char; begin if (Stream = nil) or (Stream.Size < IDCharCount) then Exit(False); PrevPosition := Stream.Position; try Builder := TStringBuilder.Create(IDCharCount); try for I := 0 to 2 do begin Stream.ReadBuffer(Value, 1); Builder.Append(Value); end; Result := SameText(Builder.ToString, 'GIF'); finally Builder.Free; end; finally Stream.Position := PrevPosition; end; end; |
存在的问题: 第一个判定不完善,
[杂谈]!错误!在 Android 下这么用 ShowModal 是错误的!
1、直接调用 ShowModal 肯定是不行的,Android 下直接抛出异常。而 iOS、OSX、Windows 下是没问题的。 2、像下面这样用循环模拟 ShowModal 也是不行的,如果只是这么简单,Delphi 早就实现了。这个代码在我手机上实测存在的主要问题就是你按回退键没响应。 [crayon-62c6a
[FMX] Android APP 启动黑屏优化补丁
使用说明 *************************************************** Android APP 启动黑屏优化补丁 作者: Swish, YangYxd 2016.01.16 Version: 1.0.0 QDAC官方群: 250530692 ******************
[FMX] 在 Delphi/C++ Builder 中开发低功耗蓝牙设备
从蓝牙4.0开始定义了不同类型的蓝牙协议,原来的蓝牙协议改称为经典蓝牙(Classic Bluetooth),新的低功耗版本被称为BLE(Bluetooth Low Energy)。 要在 Delphi 或 C++ Builder 中使用低功能蓝牙,需要做以下步骤: 1、在你的工程中放一个 TBlueToothLE 组
密码保护:[译]RAD Studio 移动开发(西雅图版)- 前言
无法提供摘要。这是一篇受保护的文章。
Android 反编译工具
想必玩安卓的童鞋大多都知道,安卓的APK安装包是可以反编译出源代码的,如果开发人员发布时没有对其混淆等加密处理,反编译出来的代码几乎与真实的源代码一模一样。 想要反编译apk,需要用到apktool.jar,目前它已经更新了到了apktool_2.0.0rc6了。apktool.jar通过命令行即可反编译apk,而且网
[FMX] Android 按键定义
在FMX中,默认的按键定义位于 FMX.UITypes 文件中,以 vk 打头,如 vkReturn 代表回车键,但其定义并不全面。因此,我们找到 Android 源码中相关的列表,列出来供大家参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 |
#define KEY_RESERVED 0 #define KEY_ESC 1 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_1 2 #define KEY_2 3 #define KEY_3 4 #define KEY_4 5 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_5 6 #define KEY_6 7 #define KEY_7 8 #define KEY_8 9 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_9 10 #define KEY_0 11 #define KEY_MINUS 12 #define KEY_EQUAL 13 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_BACKSPACE 14 #define KEY_TAB 15 #define KEY_Q 16 #define KEY_W 17 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_E 18 #define KEY_R 19 #define KEY_T 20 #define KEY_Y 21 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_U 22 #define KEY_I 23 #define KEY_O 24 #define KEY_P 25 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_LEFTBRACE 26 #define KEY_RIGHTBRACE 27 #define KEY_ENTER 28 #define KEY_LEFTCTRL 29 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_A 30 #define KEY_S 31 #define KEY_D 32 #define KEY_F 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_G 34 #define KEY_H 35 #define KEY_J 36 #define KEY_K 37 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_L 38 #define KEY_SEMICOLON 39 #define KEY_APOSTROPHE 40 #define KEY_GRAVE 41 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_LEFTSHIFT 42 #define KEY_BACKSLASH 43 #define KEY_Z 44 #define KEY_X 45 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_C 46 #define KEY_V 47 #define KEY_B 48 #define KEY_N 49 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_M 50 #define KEY_COMMA 51 #define KEY_DOT 52 #define KEY_SLASH 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_RIGHTSHIFT 54 #define KEY_KPASTERISK 55 #define KEY_LEFTALT 56 #define KEY_SPACE 57 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_CAPSLOCK 58 #define KEY_F1 59 #define KEY_F2 60 #define KEY_F3 61 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_F4 62 #define KEY_F5 63 #define KEY_F6 64 #define KEY_F7 65 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_F8 66 #define KEY_F9 67 #define KEY_F10 68 #define KEY_NUMLOCK 69 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_SCROLLLOCK 70 #define KEY_KP7 71 #define KEY_KP8 72 #define KEY_KP9 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_KPMINUS 74 #define KEY_KP4 75 #define KEY_KP5 76 #define KEY_KP6 77 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_KPPLUS 78 #define KEY_KP1 79 #define KEY_KP2 80 #define KEY_KP3 81 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_KP0 82 #define KEY_KPDOT 83 #define KEY_ZENKAKUHANKAKU 85 #define KEY_102ND 86 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_F11 87 #define KEY_F12 88 #define KEY_RO 89 #define KEY_KATAKANA 90 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_HIRAGANA 91 #define KEY_HENKAN 92 #define KEY_KATAKANAHIRAGANA 93 #define KEY_MUHENKAN 94 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_KPJPCOMMA 95 #define KEY_KPENTER 96 #define KEY_RIGHTCTRL 97 #define KEY_KPSLASH 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_SYSRQ 99 #define KEY_RIGHTALT 100 #define KEY_LINEFEED 101 #define KEY_HOME 102 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_UP 103 #define KEY_PAGEUP 104 #define KEY_LEFT 105 #define KEY_RIGHT 106 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_END 107 #define KEY_DOWN 108 #define KEY_PAGEDOWN 109 #define KEY_INSERT 110 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_DELETE 111 #define KEY_MACRO 112 #define KEY_MUTE 113 #define KEY_VOLUMEDOWN 114 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_VOLUMEUP 115 #define KEY_POWER 116 #define KEY_KPEQUAL 117 #define KEY_KPPLUSMINUS 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_PAUSE 119 #define KEY_SCALE 120 #define KEY_KPCOMMA 121 #define KEY_HANGEUL 122 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_HANGUEL KEY_HANGEUL #define KEY_HANJA 123 #define KEY_YEN 124 #define KEY_LEFTMETA 125 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_RIGHTMETA 126 #define KEY_COMPOSE 127 #define KEY_STOP 128 #define KEY_AGAIN 129 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_PROPS 130 #define KEY_UNDO 131 #define KEY_FRONT 132 #define KEY_COPY 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_OPEN 134 #define KEY_PASTE 135 #define KEY_FIND 136 #define KEY_CUT 137 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_HELP 138 #define KEY_MENU 139 #define KEY_CALC 140 #define KEY_SETUP 141 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_SLEEP 142 #define KEY_WAKEUP 143 #define KEY_FILE 144 #define KEY_SENDFILE 145 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_DELETEFILE 146 #define KEY_XFER 147 #define KEY_PROG1 148 #define KEY_PROG2 149 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_WWW 150 #define KEY_MSDOS 151 #define KEY_COFFEE 152 #define KEY_SCREENLOCK KEY_COFFEE /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_DIRECTION 153 #define KEY_CYCLEWINDOWS 154 #define KEY_MAIL 155 #define KEY_BOOKMARKS 156 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_COMPUTER 157 #define KEY_BACK 158 #define KEY_FORWARD 159 #define KEY_CLOSECD 160 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_EJECTCD 161 #define KEY_EJECTCLOSECD 162 #define KEY_NEXTSONG 163 #define KEY_PLAYPAUSE 164 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_PREVIOUSSONG 165 #define KEY_STOPCD 166 #define KEY_RECORD 167 #define KEY_REWIND 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_PHONE 169 #define KEY_ISO 170 #define KEY_CONFIG 171 #define KEY_HOMEPAGE 172 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_REFRESH 173 #define KEY_EXIT 174 #define KEY_MOVE 175 #define KEY_EDIT 176 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_SCROLLUP 177 #define KEY_SCROLLDOWN 178 #define KEY_KPLEFTPAREN 179 #define KEY_KPRIGHTPAREN 180 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_NEW 181 #define KEY_REDO 182 #define KEY_F13 183 #define KEY_F14 184 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_F15 185 #define KEY_F16 186 #define KEY_F17 187 #define KEY_F18 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_F19 189 #define KEY_F20 190 #define KEY_F21 191 #define KEY_F22 192 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_F23 193 #define KEY_F24 194 #define KEY_PLAYCD 200 #define KEY_PAUSECD 201 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_PROG3 202 #define KEY_PROG4 203 #define KEY_DASHBOARD 204 #define KEY_SUSPEND 205 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_CLOSE 206 #define KEY_PLAY 207 #define KEY_FASTFORWARD 208 #define KEY_BASSBOOST 209 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_PRINT 210 #define KEY_HP 211 #define KEY_CAMERA 212 #define KEY_SOUND 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_QUESTION 214 #define KEY_EMAIL 215 #define KEY_CHAT 216 #define KEY_SEARCH 217 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_CONNECT 218 #define KEY_FINANCE 219 #define KEY_SPORT 220 #define KEY_SHOP 221 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_ALTERASE 222 #define KEY_CANCEL 223 #define KEY_BRIGHTNESSDOWN 224 #define KEY_BRIGHTNESSUP 225 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_MEDIA 226 #define KEY_SWITCHVIDEOMODE 227 #define KEY_KBDILLUMTOGGLE 228 #define KEY_KBDILLUMDOWN 229 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_KBDILLUMUP 230 #define KEY_SEND 231 #define KEY_REPLY 232 #define KEY_FORWARDMAIL 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_SAVE 234 #define KEY_DOCUMENTS 235 #define KEY_BATTERY 236 #define KEY_BLUETOOTH 237 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_WLAN 238 #define KEY_UWB 239 #define KEY_UNKNOWN 240 #define KEY_VIDEO_NEXT 241 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_VIDEO_PREV 242 #define KEY_BRIGHTNESS_CYCLE 243 #define KEY_BRIGHTNESS_ZERO 244 #define KEY_DISPLAY_OFF 245 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ #define KEY_WIMAX 246 #define KEY_RFKILL 247 #define KEY_MICMUTE 248 |
[FMX]通知状态实现TNotificationCenter
【所在单元】 FMX.Notification 【用途】 提供应用程序状态提示,包括 Android 的状态栏通知、消息通知及应用图标旁边的数字通知,具体取决于TNotification 的相关参数设置。但注意一点,弹出的通知时,程序可能已经退出(如果计划的通知),程序只有用户点击通知时才会打开来获得通知的信息。 【主
[Android]使用adb截屏
很简单,3句话,不需要root权限:
1 2 3 |
adb -d shell screencap -p /sdcard/androidscreen.png adb -d pull /sdcard/androidscreen.png [local path] adb -d shell rm /sdcard/androidscreen.png |
将下面的的[local path]替换为你自己的本地路径,如C:/temp/androidscreen.png就好了,图就顺利的截下来了。
Delphi编写的Android程序获取Root权限实现(2015.4.15更新,支持Android 4.4)
借助谷歌,并经过本大侠施展坑、蒙、拐、骗、偷五大绝技,终于成功实现在Delphi下获取Root权限并将其扩展为一个完整功能更加完整的TQAndroidShell记录,在华为荣耀2(Android 4.2)、Nubia Z5S(Android 4.4)测试通过。参考代码如下: [crayon-62c6ab9b5f0884
在Andriod程序中获取外置SD卡根目录
我们知道,Andriod是基于Linux的,所以正常的存贮设备都被挂载到/mnt目录下,我们查找SD卡根目录就是要在下面找到那个卡是外置的SD卡,但遗憾的是,目前没有一种标准的方法来做到这一点(包括Andriod本身)。下面我为大家提供了一个函数来完成这一功能: [crayon-62c6ab9b5f2682135018