Initial date - Windows Mobile Development and Hacking General

Does anyone know how I can change the initial date after a clean boot?
Now it defaults to 9/1/2007 but I want to default it to 1/1/2010.
I have searched RGU files and googled on this.
I use WM 6.5 build 23014 on my iPAQ 214.

Open up nk.exe (S000) in something like IDA disassembler and look for it. I bet there is also something lying on forums

OndraSter said:
Open up nk.exe (S000) in something like IDA disassembler and look for it. I bet there is also something lying on forums
Click to expand...
Click to collapse
I was looking into the imgfs partition, but I will look in the nk.exe
Thanks!

I did find it in S002
It was in lpSystemTime structure format
For anyone who wants to know to change this here some explanation.
lpSystemTime.wYear = 2007 = 0x07d7
lpSystemTime.wMonth = September = 0x0009
lpSystemTime.wDayOfWeek = Saturday = 0x0006
lpSystemTime.wDay = 1 = 0x0001
lpSystemTime.wHour = 12 AM = 0x0000
lpSystemTime.wMinute = 00 = 0x0000
lpSystemTime.wSecond = 00 = 0x0000
lpSystemTime.wMilisecond = 00 = 0x0000
Structure layout of lpSystemTime.
WYear Integer-The current year.
WMonth Integer-The current month. January is 1.
WDayOfWeek Integer-The current day of the week. Sunday is 0.
WDay Integer-The current day of the month.
WHour Integer-The current hour.
wMinute Integer-The current minute.
wSecond Integer-The current second.
wMilliseconds Integer-The current millisecond.

Related

eVB question string * 256

I'm trying to run the a script in evb,
i included the part where the error occurs
Dim regdata as String
lngSize = 256
regdata = String(lngSize,0)
but this results in an error :
'String' is a class type, and so is not a valid expression. :twisted:
I just want regdata to be filled with 256 x Chr(0)
How can i do this without an error :?:

Calendar - Changing working-week days and hours

This registry hack probably applies to other models as well as the Universal.
By default, the working-week Days and Hours shown in Pocket Outlook by a different colour are set to Monday through Friday and 08:00 to 17:00-hrs. I needed a modification for a client with a weird working week (Mon, Wed, Fri, Sat) and starting ending times on the half hour. The following hack allows this:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Calendar\ActiveTimes]
"ActiveTimes"=dword:2210003E
If whole key is missing, or as above, sets default of 8:00 to 17:00hrs with working week of Monday through Friday.
Explanation:
A. Starting and Ending times of working week (3rd & 4th bytes of dword value)
Specified as a hex value in left-most two bytes.
Format is: eessxxxx e.g.: 2313xxxx
(ee) Left-most byte is Ending time in half hour units
i.e.: 23-hex = 35d/2 = 17.5 = 17:30hrs
(ss) Right-most byte is Starting time in half hour units
i.e.: 13-hex = 19d/2 = 9.5 = 09:30hrs
So, to set 9:30 to 18:30, Mon through Fri use:
"ActiveTimes"=dword:2313003E
B. Particular Days of Working week (1st byte of dword value)
Specified as a binary value in rightmost byte.
Format is: xSFTWTMS
i.e.: x,Sat,Fri,Thu,Wed,Tue,Mon,Sun
e.g.: default value (3E-hex) is: x0111110 = Fri,Thu,Wed,Tue,Mon
e.g.: use 7E-hex for a 6-day (Mon to Sat) working week: x1111110
e.g.: use 16-hex for 3-day working week (Tue, Thu, Fri): x0110100
Don't know if the leftmost bit is used for anything.
So to set working week of 9:30 to 18:30, Mon to Sat, use:
"ActiveTimes"=dword:2313007E
how i can do if my workday start at 10:00 and ends at 00:00 ?
zpdy said:
how i can do if my workday start at 10:00 and ends at 00:00 ?
Click to expand...
Click to collapse
Okay, you've got me on this one! The best that I can do is 10:00 to 23:30, so you'll have to sweet-talk your boss into letting you leave work half-an-hour early :wink:
Unfortunately, the ending value cannot accept 24:00-hrs, neither can it accept 00:00-hrs; since the ending time must be greater than the starting time. If you try, it reverts to 8:00 to 17:00.
I'm assuming that your working days are Monday to Friday, so for 10:00 to 23:30, you'll need to insert a value of: 2F14003E
How is this calculated?
Well, a starting time of 10:00 = 20 half-hour units, which in hexadecimal notation is 14
The ending time of 23:30 = 47 half-hour units, which in hexadecimal is 2F.
The working days (Monday through Friday) are defined by the byte 3E - as detailed in the first message in this topic.
I have not yet experimented to see if the second byte has any influence on the calendar.
As for the clever **** that wanted different days every other week :shock:, either write your own calendar or apply once of two .REG files as needed. :lol:
Didn't work on mine.

accelerometer(Incite) method signatures

I am trying to create a managed wrapper(.net) for the CT810(incite) accelerometer, just hit the wall--
I have dumped my ROM, and extracted the accelsensor.dll
but am unable to extract any signatures
I though I get lucky and just be able to tlbimp it, no such luck
next tried dumpbin /EXPORTS accelsensor.dll
Dump of file accelsensor.dll
File Type: DLL
Section contains the following exports for ACCELSENSOR.dll
00000000 characteristics
2C05A62B time date stamp Thu May 27 22:42:03 1993
0.00 version
1 ordinal base
11 number of functions
11 number of names
ordinal hint RVA name
1 0 000015E0 ACC_Close
2 1 0000141C ACC_Deinit
3 2 000021CC ACC_IOControl
4 3 00001F40 ACC_Init
5 4 000015DC ACC_Open
6 5 00001520 ACC_PowerDown
7 6 00001574 ACC_PowerUp
8 7 000015E8 ACC_Read
9 8 00001618 ACC_Seek
10 9 00001600 ACC_Write
11 A 00001620 DllEntry
Summary
1000 .CRT
1000 .data
1000 .pdata
1000 .reloc
4000 .text
But this does not show any vector data I could subscribe to
Does PEBrowse work with ARM?
Any advice on what to do next?
Regards
_Eric
could you please post the dll for others to work with?in no dev but have been looking forapps that will work with the incite accelerometer but most are made for HTC. you have a step up on most you the fist ive seen in past 4mo of looking who even trying hopefullu little team work with some guys who developed few apps that work with htc g sensor.if you could repost this with included dll. thanks
I now own a LG GM750 (WM6.5) and it also uses the accelsensor.dll.
Some MS applications like IE6 and picture viewer use it when turning the phone but all the nice HTC apps are not working.
There is HTCEmu for Samsung which probably could be adapted for LG.
Anybody trying to do this ?
Hmm.. since this old thread was bumped, I just wanted to link this for reference if it's helpful:
http://www.lg-incite.com/index.php?topic=2791.0
dll & mbn are at 3rd post
Hi
first sry 4 my englisch im german.
Im very interested to get the motion/g-sensor to work with htc apps. I got my lg last week and have the same problem that no apps work on it exepting ie and some windows apps.
If i can help to post some detail or if somehone has a conclusion how to use plz help.
i testet the samsung emu but it do not work also.
THX much
attached the.dll of the lg gm750 in case they serve of something
solution for LG GM750
First take a look at the Unified Sensor Api at codeplex.
My solution is based on the Samsung sensor class, modified to meet the peculiarities of the LG GM750.
First of all, the import of the DeviceIoControl in NativeMethods.cs must be modified such way dwIoControlCode is type uint, and the buffers are byte:
Code:
[DllImport("coredll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool DeviceIoControl(IntPtr hDevice, uint dwIoControlCode, [In] byte[] inBuffer, int nInBufferSize, [Out] byte[] outBuffer, int nOutBufferSize, ref int pBytesReturned, IntPtr lpOverlapped);
After a long time dissassembling the accelsensor.dll and and a lot of trial and error testing I came to this conclusion that works:
The constant that starts/stops data output becomes:
Code:
const uint ACCOnRot = 0x1014EE8;
const uint ACCOffRot = 0x1014EE8;
and for reading values:
Code:
const uint ACCReadValues = 0x1014F10;
The difference between start and stop comes from the input given in DeviceIoControl method as follows:
Code:
public static LGAccSensor Create()
{
DeviceIoControl(ACCOnRot, new byte[1] {1}, new byte[4] );
return new LGAccSensor();
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
DeviceIoControl(ACCOffRot, new byte[1] {0}, new byte[1] );
}
The DeviceIoControl inside the accelerometer class becomes
Code:
public static void DeviceIoControl(uint controlCode, byte[] inBuffer, byte[] outBuffer)
{
IntPtr file = NativeMethods.CreateFile("ACC1:", 0, 0, IntPtr.Zero, ECreationDisposition.OpenExisting, 0, IntPtr.Zero);
if (file == (IntPtr)(-1))
throw new InvalidOperationException("Unable to Create File");
try
{
int bytesReturned = 0;
int inSize = sizeof(byte) * inBuffer.Length;
int outSize = sizeof(byte) * outBuffer.Length;
if (!NativeMethods.DeviceIoControl(file, controlCode, inBuffer, inSize, outBuffer, outSize, ref bytesReturned, IntPtr.Zero))
throw new InvalidOperationException("Unable to perform operation.");
}
finally
{
NativeMethods.CloseHandle(file);
}
}
Note that the accelerometer device is called ACC1:.
Further the method that returns the three component vector becomes
Code:
public override GVector GetGVector()
{
byte[] outBuffer = new byte[4];
DeviceIoControl(ACCReadValues, new byte[1] {1}, outBuffer);
GVector ret = new GVector();
int accx = outBuffer[2];
if (accx <=31)
ret.X = accx/2.17;
else
ret.X = (accx-64)*0.47;
ret.X = -ret.X;
int accy = outBuffer[1] ;
if (accy <=31)
ret.Y = accy/2.17;
else
ret.Y = (accy - 64) * 0.47;
int accz = outBuffer[0] ;
if (accz <=31)
ret.Z = accz/2.17;
else
ret.Z = (accz - 64) * 0.47;
double somefactor = 1; return ret.Scale(somefactor);
}
Note that the when called with AccReadValues parameter, the DeviceIoControl returns three bytes each of them containing a signed 6 bit 2's complement value.Basicly there are values on 6 bit ranging from -32 to +31. In the docs below there are tables that put in correspondence these values with acceleration in range -1.5g +1.5g which are the limits of the device. The code I wrote returns acceleration in meters/second2 where 1g=9.8 m/s2. That information I extracted from the technical specifications of the MMA7660FC accelerometer, as found at(try a google search). Also, the type of the accelerometer circuit is found in the service manual (I only found the service manual for LG GM730 which is pretty close).The same thing I also posted at codeplex.
All that means that you are in a good way to make the gm750 sensor act like samsung' s, even htc's, sensor???
Oh, iamspv, please make it work, I begging you!
jowl_tnt said:
All that means that you are in a good way to make the gm750 sensor act like samsung' s, even htc's, sensor???
Oh, iamspv, please make it work, I begging you!
Click to expand...
Click to collapse
It already works! There is nothing more to do about it than use the code in your applications (I speak as a programmer and for programmers). I only showed everyone interested in developing for LG GM750 the steps to modify the SamsungGSensor class from "Unified Sensor Api" at codeplex to work with a LG. Just get the rest of the code from there and put it toghether.
Now there are two directions:
Direction #1
If you want to develop applications that aim to be portable between HTC, Samsung, LG, Toshiba, etc, and you want to use Unified Sensor Api then..
the person responsible for the unified api project at codeplex should make the update to the library as soon as possible such way the library should keep compatibility with the adressed devices. I'm just contributing with some results. That's because the initial code was not very general (ie. the initial parameter types to deviceiocontrol invoked from coredll didn't work with this solution) I had to make some modifications to the code that work with the LG but affect other devices' sensor classes. Now, if the update doesn't come up soon, no problem, anyone just gets the code from codeplex, adds a new class for LG, copies code from Samsung, renames Samsung with LG, adds my modifications, corrects syntax errors, compiles, et voila . . the library is updated to support LG GM750.
Direction #2
If you develop only for LG, just write a LG class as presented above and don't care about other devices.
If you don't know how to use your new class, the project at codeplex has some examples and you'll easily see inside the code how to instantiate sensors, how to read data at certain moments using a timer, and how to capture screen rotation events.
And for your long awaited joy to see it working, I attached the sensor test program along with a version of sensors.dll compiled by me, that works for GM750.
Now get your fingers toghether on the keyboard and start developing for LG
Thanks a lot for this! I can now play sensory-overload on the LG750
I downloaded the game and replaced the sensor.dll with your version.
Now I'll need to find out how to use this with SPB Mobile Shell...
Thanks for your help but I'm not a programmer and I don't understand much of these.
I think the solution is to make a modified HTCSensorSDK.dll for gm750. Then all gsensor apps for htc will work on our lg. Is that right;
That is what so many users have been waiting for.
It works for LG GM735 as well.
much appreciated !. Well done!.
roolku said:
Thanks a lot for this! I can now play sensory-overload on the LG750
I downloaded the game and replaced the sensor.dll with your version.
Now I'll need to find out how to use this with SPB Mobile Shell...
Click to expand...
Click to collapse
roolku, please confirm that when playing sensory-overload the Y axis is reversed. It is an issue of the Sensor API I encountered while testing.
The theory says,
"The positive X axis is from the center of the screen to the right.
The positive Y axis is from the center of the screen to the top.
The positive Z axis is from the front of the screen towards the viewer."
but this isn't the case in sensor api.
I respected this theory when I returned the acceleration values, as you can see in my sensor test program. But also you will see the api considers Portrait as Reverse Portrait.
Developers should be aware of these issues and make the appropiate changes to the library when writing code.
iamspv said:
roolku, please confirm that when playing sensory-overload the Y axis is reversed. It is an issue of the Sensor API I encountered while testing.
Click to expand...
Click to collapse
Yes, you are right. I couldn't quite put my finger on what was strange when playing it.
iamspv said:
I respected this theory when I returned the acceleration values, as you can see in my sensor test program. But also you will see the api considers Portrait as Reverse Portrait.
Developers should be aware of these issues and make the appropiate changes to the library when writing code.
Click to expand...
Click to collapse
Hm, I wonder if it is more sensible to conform to the established convention rather than expect everybody else to change their ways. Unless I misunderstood you?
Would you mind supplying a version of sensor.dll that is compatible with the Samsung one (i.e. reversed y-axis)?
thank you, clublgmobile you thanks, expect that works with all applications
I don't understand how that works. How can i play RescoBubbles for example;
this is excellent news. now if we could just get the GW820 (expo,IQ) accelsensor.dll dissasembled we'd be cookin with gas
killerskincanoe said:
this is excellent news. now if we could just get the GW820 (expo,IQ) accelsensor.dll dissasembled we'd be cookin with gas
Click to expand...
Click to collapse
Yes, it would be very much appreciated! Ive been looking for a htc wrapper for our sensor since i got the phone.
I attached the accelsensor.dll from the eXpo in case that will help at all. I wish i had the knowledge to do more myself..
edit:
Also, theres a game that comes stock on At&t's model gw820 called Ferrari GT Evolution that uses the gsensor. Its made by gameloft so maybe its not as hard to get to as the incites?
to roolku:
Here is a modified version of sensors.dll with reversed Y axis that will a allow you to normally play sensory overload on your GM750. Using the GSensorTest you will see Portrait is now detected correctly.
Also, this version of sensors.dll works on HTC and Samsung as the original one , I managed to separate code. See the attachement.
to theyllib
I dissassembled the gw820 accelsensor.dll you provided. Looks like the interesting part is here
this is some data
Code:
.text:100027CC dword_100027CC DCD 0x32100C ; DATA XREF: ACC_IOControl+25Cr
.text:100027D0 dword_100027D0 DCD 0x321008 ; DATA XREF: ACC_IOControl+250r
.text:100027D4 dword_100027D4 DCD 0x321004 ; DATA XREF: ACC_IOControl:loc_1000263Cr
.text:100027D8 off_100027D8 DCD unk_10005650 ; DATA XREF: ACC_IOControl+8Cr
.text:100027D8 ; ACC_IOControl+138r ...
.text:100027DC dword_100027DC DCD 0x22200C ; DATA XREF: ACC_IOControl+80r
.text:100027E0 dword_100027E0 DCD 0x222008 ; DATA XREF: ACC_IOControl+74r
.text:100027E4 dword_100027E4 DCD 0x222004 ; DATA XREF: ACC_IOControl+68r
.text:100027E8 dword_100027E8 DCD 0x222010 ; DATA XREF: ACC_IOControl+48r
.text:100027EC off_100027EC DCD aAcc_iocontrol0 ; DATA XREF: ACC_IOControl+30r
.text:100027EC ; "ACC_IOControl(%08x)"
and this is where they are adressed
Code:
.text:10002440 LDR R3, =0x222010
.text:10002444 CMP R6, R3
.text:10002448 BHI loc_100025D4
.text:1000244C BEQ loc_10002588
.text:10002450 MOV R3, 0x222000
.text:10002458 CMP R6, R3
.text:1000245C BEQ loc_100025C0
.text:10002460 LDR R3, =0x222004
.text:10002464 CMP R6, R3
.text:10002468 BEQ loc_10002540
.text:1000246C LDR R3, =0x222008
.text:10002470 CMP R6, R3
.text:10002474 BEQ loc_10002518
.text:10002478 LDR R3, =0x22200C
.text:1000247C CMP R6, R3
.text:10002480 BNE loc_10002660
.text:10002484 LDR R3, =unk_10005650
.text:10002488 LDR R3, [R3]
.text:1000248C CMP R3, #1
.text:10002490 MOVNE R3, #0
The codes that must be sent to DeviceIoControl in coredll.dll are probably the 0x22200C, 0x222008 and stuff. The 0x321008 and stuff are some power get/set codes. But you need a programmer with an actual gw820 device to make it work as it need lots of testing. Hope this information helps and someone with such device will make it work.
Can anyone check if the Incite comes with ACCAPI.DLL, and if so can it be posted ?

[Q] Teamspeak 3 for the Android

Welcome to this new and important thread about the Teamspeak 3 Client for Android. We all need it so badly, always connected with Teamspeak on the PC, and now with your mobile where ever you go, you can talk with your Teamspeak buddies. Anyways, that would be wonderfull!!!! And also because Skype gets removed by Nimbuzz and Fring, we need a good alternative that doesn't rely on making money.
So to start off, I have to tell you, this app doesn't exist yet.
But we can make a difference!
If we all work together on this, I know we can do this.
So I did some research, and i want to share that research with you, so maby WE (as xdadevelopers) can do this.
First of all we need to look at how Teamspeak works and what functionalities and options we need to give the Teamspeak Android Client. (aah a nice name TAC, will keep using that one).
(cant post links to outside websites so i post the ts3architecture later when i have more post. Also go to the official TS3 website to download the SDK.
As far a codec for voice communication the Speex codec is the most commonly used in TS.
I spoke with a person who told me he managed to port the Speex codec onto the android. But I dont have access to that code. maby in the future....
So as far as SDK for Android.... I also heard about an NDK, (Native Developers Kit), so is this project more suitable for the NDK?
As far as i know from Teamspeak experiance we only need the UDP part to work, to have an voice communication.
Please all post your replies, comments, love, and support.
Cheers DesireDroid
That will be great!
I would buy it if anyone develop it!!!
I don't know anywhere near enough to help develop, but I'd certainly buy the app.
sipdroid has speex and is open source (GPL, i think). i might be able to get something working, but i probably won't have time to look at teamspeak until next week.
hotaru said:
sipdroid has speex and is open source (GPL, i think). i might be able to get something working, but i probably won't have time to look at teamspeak until next week.
Click to expand...
Click to collapse
I will look into sipdroid right away.
And help in a week is still help. So we got our first helper ;-)
Cheers, and stay tuned.
Sent from my HTC Desire using XDA App
Who wants this app and want to contribute?
reversing protocol and api is not easy, nor legal but doable
Hi,
first of all, if we do this i would recommend to gather up some folks on a sourceforge website.
i have experience in VoIP, network protocol and android programming, because its my job. Thats why i'm afraid sipdroid is of no help because TS3 has a complete proprietary (and encrypted) protocol. I already know how to encode speex on android/java no problem here. the real trick is to break the ts3 protocol, because the support client API SDK is of no use, because its precompiled (and not for ARM V5/7 CPUs).
I took the time to have a loot at TS3 UDP packet structure and it does not look very promising because they are using obviously some kind of encryption that is somewhere hardcoded in the client library. I think it is a lightwight encryption, maybe even combination of MD5 or some easy bit operations. But resulting network traffic does not contain any default encoded values (like asn1 int/strings/...). I was not able to do a fake login. In order to do this someone needs to disassemble the TS3 Client library. This one really needs to know what he is doing. The compile library is 4MB in size, so there is a lot of stuff. I think it is out of my scope. However, it can be done, but it is anything else than of easy.
here are my first wireshark results:
PHP:
Facts:
- UDP only (think so, even though TCP is mentioned in docs)
- Default port: 9987
General Structure:
- Each packet heads a 8Byte hash.
- Hash MAY contain a checksum and/or sequence
- Once connection is established a keepalive an ack ist looped containing a sequence number (in plain)
================
Connecte Request (1 client packet)
HASH (each packet)
00000000 [e0 e2 2e d8 fd cd 03 3b] 00 00 00 00 02 9d 74 8b .......; ......t.
00000010 45 aa 7b ef b9 9e fe ad 08 19 ba cf 41 e0 16 a2 E.{..... ....A...
VARIABLE PER CONNECTION
00000020 [2b 77 d5 94 fe e7 31 72 e6 d0 a3 2f 2d 59]90 95 +w....1r .../-Y..
00000030 23 3e 00 97 2b 1c 71 b2 4e c0 61 f1 d7 6f c5 7e #>..+.q. N.a..o.~
00000040 f6 48 52 bf 82 6d a9 3a 52 da 23 5f 03 2b d9 bf .HR..m.: R.#_.+..
00000050 3a da 2e aa fe 74 c6 fc 23 de 99 71 23 91 b9 06 :....t.. #..q#...
00000060 16 4a 4e eb 2b 48 ae c3 2d 14 a1 e6 77 cc 68 ab .JN.+H.. -...w.h.
00000070 c1 cf 0f fd 07 ac 0d 42 09 15 bb a0 86 33 2a 23 .......B .....3*#
00000080 08 03 8a 65 81 89 c6 2b 85 82 4b d5 fd f8 61 3c ...e...+ ..K...a<
00000090 b4 39 76 fb cf 18 2a aa 97 9b f7 ad 81 82 33 66 .9v...*. ......3f
000000A0 be 8d
==================
Answer (1 server packet)
HASH
00000000 [be e2 d4 c4 8f 8c 54 51] 00 00 02 97 76 8b 54 ad ......TQ ....v.T.
VAR
00000010 79 e3 af 87 eb aa 1a 19 ba cf 41 e0 16 a2[6c 5e]y....... ..A...l^
VAR LO LO HI hi
00000020 [e3 cf 93 df 2f 4a f9 f2 97 29 22 59]90 95 23 33 ..../J.. .)"Y..#3
VAR LO HI HI LO HI LO HI LO
00000030 08 86 2d 40[29 b6 39 cf 40 e6 c5 3a c6 5a f0 6f][email protected]).9. @..:.Z.o
9c FIX
00000040 65 89 d6[12]c3 62 6f 88 32 7a 69 3e cd a4 12 ce e....bo. 2zi>....
44
00000050 62 fe de 1e 96 d0 0e a9 9f 76 7e cc a7 63 1c 47 b....... .v~..c.G
00000060 0a 94 38 22 f5 f9 06 34 d6 f6 78 92 6c 91 c6 d9 ..8"...4 ..x.l...
00000070 2d fa 2a 8e 10 54 6c 33 91 be 92 3f 2d 2b 0d 3c -.*..Tl3 ...?-+.<
00000080 a2 7c 89 de e2 27 ae b0 53 e4 c7 fd 64 0a e3 2d .|...'.. S...d..-
00000090 2c fc c4 06 0e fc f7 81 f6 de a7 cc 1c 71 bc 80 ,....... .....q..
000000A0 d3 54 8b 02 9a 1b ca ad 92 99 28 62 cc 62 fa 53 .T...... ..(b.b.S
000000B0 1b 13 ec 93
http://wiki.github.com/Youx/soliloque-server/teamspeak-protocol and http://wiki.github.com/Youx/soliloque-server/program-architecture look promising...
this project cares about ts2 protocol not ts3. ts3 is more complicated and not yet reverse engineered.
Maby this is usefull.... got this from the sdk documentation.
Connecting to a server
To connect to a server, a client application is required to request an identity from the Client Lib. This string should be requested
only once and then locally stored in the applications configuration. The next time the application connects to a server, the
identity should be read from the configuration and reused again.
unsigned int ts3client_createIdentity(result);
char** result;
Parameters
• result
Address of a variable that receives the identity string, encoded in UTF-8.
Returns ERROR_ok on success, otherwise an error code as defined in public_errors.h. If an error occured, the result
string is uninitialized and must not be accessed.
Caution
The result string must be released using ts3client_freeMemory. If an error has occured, the result string
is uninitialized and must not be released.
Once a server connection handler has been spawned and an identity is available, connect to a TeamSpeak 3 server with
unsigned int ts3client_startConnection(serverConnectionHandlerID, identity, ip,
port, nickname, defaultChannelArray, defaultChannelPassword, serverPassword);
uint64 serverConnectionHandlerID;
const char* identity;
const char* ip;
unsigned int port;
const char* nickname;
const char** defaultChannelArray;
const char* defaultChannelPassword;
const char* serverPassword;
Parameters
• serverConnectionHandlerID
Unique identifier for this server connection. Created with ts3client_spawnNewServerConnectionHandler
• identity
The clients identity. This string has to be created by calling ts3client_createIdentity. Please note an application
should create the identity only once, store the string locally and reuse it for future connections.
• ip
Hostname or IP of the TeamSpeak 3 server.
If you pass a hostname instead of an IP, the Client Lib will try to resolve it to an IP, but the function may block for an
unusually long period of time while resolving is taking place. If you are relying on the function to return quickly, we
recommend to resolve the hostname yourself (e.g. asynchronously) and then call ts3client_startConnection with
the IP instead of the hostname.
• port
UDP port of the TeamSpeak 3 server, by default 9987. TeamSpeak 3 uses UDP. Support for TCP might be added in the
future.
• nickname
On login, the client attempts to take this nickname on the connected server. Note this is not necessarily the actually assigned
nickname, as the server can modifiy the nickname ("gandalf_1" instead the requested "gandalf") or refuse blocked names.
• defaultChannelArray
String array defining the path to a channel on the TeamSpeak 3 server. If the channel exists and the user has sufficient rights
and supplies the correct password if required, the channel will be joined on login.
To define the path to a subchannel of arbitrary level, create an array of channel names detailing the position of the default
channel (e.g. "grandparent", "parent", "mydefault", ""). The array is terminated with a empty string.
Pass NULL to join the servers default channel.
• defaultChannelPassword
Password for the default channel. Pass an empty string if no password is required or no default channel is specified.
• serverPassword
Password for the server. Pass an empty string if the server does not require a password.
All strings need to be encoded in UTF-8 format.
(hope this isn't to mutch text. its that i cant copy any links in here....
bastard dot sourceforge dot net/libdisasm.html
Anyone can update this thread ?
I need the develop progress..
Hey...
I did ask the TeamSpeak- Team, if they release a Teamspeak3 Version for Android.
They did answer me today and they are saying that they will release a Android.Version and a iPhone.Version. But they didnt told me a releasedate.
So i think now that they will not give us there Sourcecode.. Because they will develop an own Version for Smartphones...
Hurry up Teamspeak Devs... because we all need it !!!
Greetz..
original Answer :
Hallo,
vielen Dank für Ihre Anfrage und für Ihr Interesse an TeamSpeak. Wir beabsichtigen, Support für das iPhone und das Android-Handy anzubieten. Im Moment steht noch kein festes Datum fest, an dem wir die mobilen Plattformen unterstützen werden, aber wir haben dies auf alle Fälle vor. Bitte schauen Sie öfter mal in unsere Webseite unter www.teamspeak.com rein, um die neuesten Nachrichten einzusehen, wenn diese zur Verfügung stehen.
Mit freundlichem Gruß
- Dani
[DE] TeamSpeak Sales
Click to expand...
Click to collapse
THIS will improve my android alot! something i have ALWAYS wanted!
dRaCID01 said:
Hey...
I did ask the TeamSpeak- Team, if they release a Teamspeak3 Version for Android.
They did answer me today and they are saying that they will release a Android.Version and a iPhone.Version. But they didnt told me a releasedate.
So i think now that they will not give us there Sourcecode.. Because they will develop an own Version for Smartphones...
Hurry up Teamspeak Devs... because we all need it !!!
Greetz..
original Answer :
Click to expand...
Click to collapse
Thnxs for your post!
I have heared that they would release the version after the final release of teamspeak3, so yeah just make it final i would say
well i would say, if the TS3 ever comes to android, post here the link.
Sure i would love to see ts3 for android. But be informed: i just tested mumble for android. Its still under development, lacks any options, but just worked 100% for me, talking to my friends
Sent from my HTC Desire using Tapatalk
hello all, was just searching the sime thing that all of u, and found this thread and this forum
3 weeks has gone from the last post.... have anyone any new? or any form to connect to a TeamSpeak server?
P.S.: in teamspeak page, i found they have put a link for download idk what of SDK, it's relationed?
No new News from Teamspeak.. i think the android.app will come out, when they have finish the beta Releases of TS3..
Ok... and until they develop the TS version for android, we cant be on TS somehow?
(with "be" on TS, i mean hear the others, and if it's possible, talk) (no just see the server status)
Thanks for answer, and sorry for my english.
chocapica said:
Ok... and until they develop the TS version for android, we cant be on TS somehow?
(with "be" on TS, i mean hear the others, and if it's possible, talk) (no just see the server status)
Thanks for answer, and sorry for my english.
Click to expand...
Click to collapse
No, you can't. Teamspeak is totally closed. The team lacks development power since early version 2. If you see how long ts3 took, how long the beta takes and how big issues there still wait for being fixed, it makes you cry.
So I doubt the partly incompetent dev team will put any focus on new technologies like mobile in the near future.
If you want something like teamspeak now, use skype or mumble which both work pretty well already
Swyped with my S-OFF'd brain using teh internetz

[Q] convert existing Android UDP (DatagramPacket) code to TCP

I have existing Android code that submits a pre-constructed packet over UDP to a hardware device... however, I now need to convert this code to work over TCP instead in order to be more reliable. Currently the code will send the packet to the device, and wait for a predetermined Timeout time for the Device to "answer" back over the same UDP port and to the source IP. The hardware device listens on both UDP and TCP on the same port numbers.
The UDP code looks like this:
Code:
serverSocket = new DatagramSocket(ListenPort);
{
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddressOut);
serverSocket.send(sendPacket);
serverSocket.setSoTimeout(TimeOut);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
byte[] tempDataBuf = Arrays.copyOfRange(receiveData, 0, receivePacket.getLength());
MsgReply.ApplyMessageData(tempDataBuf);
System.out.println("RECEIVED: " + MsgReply.toString());
publishProgress(MsgReply.toString().getBytes());
}
Can anyone assist me in converting this code into TCP format?
Appreciate any help!
PS...I asked this question on stackoverflow too, but got no response... heard XDA started a programming forum, so figured I'll give this a bash
Code:
try {
s=new Socket(InetAddress.getByName("192.168.0.2"),2020);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out= new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//send output msg
String outMsg = "ok";
out.write(outMsg);
out.flush();
Log.i("TcpClient", "sent: " + outMsg);
//accept server response
String inMsg = null;
try {
inMsg = in.readLine() + System.getProperty("line.separator");
//Send ur data to the below method to do ur process
processdata(inMsg);
}
This my suggestion to use this code under the AsyncTask to support for further higher platform. if didnt done already..
Thank you very much... will give it a try shortly!
jacauc said:
Thank you very much... will give it a try shortly!
Click to expand...
Click to collapse
ok man, if u have problem with this code post it here and send PM.. Then only i can reach U immediately...
I'm particularly interested in how to convert these few particular lines of code to the UDP format..
The attached code sample is very close to what I came up with, but I'm not sure how to construct the packet and parse the results:
Code:
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddressOut);
and
Code:
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
and especially this line:
Code:
byte[] tempDataBuf = Arrays.copyOfRange(receiveData, 0, receivePacket.getLength());
Also...
What does this part do?:
Code:
System.getProperty("line.separator");
Any suggestions?
Thanks again
@jacauc
First of all if u are developing an Client application the following code will help U, For server coding its different its not Like UPD.
UDP probably need both server as all client socket to send and receive the data. But in case of TCP, its not necessary to have a Server Socket only client socket is enough for both read and write..
Code:
java.net.Socket s=new Socket(InetAddress.getByName(pre.getString("ip", "192.168.0.2")),2020);
Click to expand...
Click to collapse
This code create a client tcp socket and allow u to communication to the specific ip and port..
Code:
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddressOut);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
Click to expand...
Click to collapse
these two lines will probably replaced by the above single line..
But if u for handling TCP socket U need two stream one for reading and other for write data to the stream.
Code:
java.io.InputStreamReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
java.io.OutputStreamWriter out= new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
Click to expand...
Click to collapse
The above two line probably help to construct Input and out Stream for u from that Socket.
byte[] tempDataBuf = Arrays.copyOfRange(receiveData, 0, receivePacket.getLength());
Click to expand...
Click to collapse
There is no necessary for this code here because u directly get the String of data from this stream
Code:
String inMsg = in.readLine()
;
Click to expand...
Click to collapse
This line will read the line of string from the stream.
System.getProperty("line.separator");
Click to expand...
Click to collapse
This line is not must. This line will add the system specific line sperator at the end of the string. Is used this in my application to find the line sperator to avoid some system related problem while finding the line end point..
@CoolMonster
Thanks again for your time... this is starting to make a lot of sense now!
I'm getting close!
One thing I had in the UDP code was to send a pre constructed byte to the Digi Wifi XBEE box i'm interfacing with. This is "senddata"
Now if I do
Code:
out.write(sendData);
I get an error message stating that out.write cannot handle a byte.
I have
Code:
private byte[] sendData = new byte[1024];
Does this mean that I should send my data in a string format instead of byte?
@CoolMonster
More information after some additional research:
Prior to sending my string to the hardware module, I need to send some packets to open the communication channel.
For the UDP packet, this is assembled as follows in Hex:
Command ID: 0x02
Command Options: 0
Frame ID: 0x01
Config Options: 0x02
AT Command: 49 53 (This is the HEX for the AT command I want to send, which translates to "IS" in ascii)
Thus, the packet looks like this in Hex:
02 00 01 02 49 53
Then I will get a Hex result which I am already parsing to make sense of the output.
@jacauc
http://stackoverflow.com/a/2879077/1405008
Click to expand...
Click to collapse
hai man check this link for handling byte array in tcp connection...
Let me know if u face problem in handling the above solution..
But I am sure about the Interface what u are using. U better test it by creating simple local server and test the code then test it with the real system..
Appreciate all your help with this! Seems to be working like I wanted it to now.
Thanks
jacauc said:
Appreciate all your help with this! Seems to be working like I wanted it to now.
Thanks
Click to expand...
Click to collapse
Cool, Ur welcome man...

Categories

Resources