MatD's
Symbian pages |
The
first time I began to develop with Symbian I was lost... What
is a mmp File ? How to produce a SIS ? Where can I see if
my development workspace is correct ? Having found the answers
to all these questions and other tricky problems, I decided
to write little articles about Symbian development. |
|
|
|
 |
 |
N90 Review (posted
12/04/05 by MatD) |
 |
This is one of the most funniest mobile phone I
ever had in my hand. With a right turn you turn
it into a digital camera. The two displays have
own integrated functions. This phone is a 3G phone
and uses Nokia Series 60 Symbian operating system.
Funny stuff is to see that Series 60 older than
the Feature Pack 3 are rescaled to adapt to the
new screen resolution! Read the full review of this mobile phone>> |
|
|
|
 |
Using the gnuBox with your Symbian C++ program
(posted
10/23/05 by MatD) |
 |
Once you have installed the gnuBox (read the related Nokia and gnuBox article) you have certainly noticed that althought you can surf with the browser, you can't use the gnuBox with your C++ Symbian program which is using sockets and network communications.
Even by using the
correct access point ! Why ? Here is the solution :
This is due to the CCommsDbConnectionPrefTable. This table ( it's a file placed under ) which contains all the configuration necessary for each access point your mobile phone is going to use.
The following operations are dangerous and if not correctly executed may damage your ConnectionTable. If you are using another internet connection than Bt to browse or if you have other "connected" programs, please don't try.
BE SURE TO KNOW WHAT YOU ARE GOING TO DO !. This has been tested on a Nokia 3230. On a Nokia 6630 the gnuBox damages the CommDb and you need to format your phone. So please be very very careful and be sure to make a backup of your phone. You have been warned !
If possible use a "test" mobile phone !
First of all we need to extract the CommDb file (gnuBox -> Debug -> Dump Full CommDb) and find out (under C:\Nokia\commdb.txt) which IAP Id is used by the Bt Access Point. In my case the commdb.txt file contained this lines :
ROW
Id = 36
Name = Bt
Hidden = FALSE
ReadOnly = FALSE |
We now have found which IAP Id the Bt connection is using (Id = 36). We now need to set up our program to use this connection instead of another one. Being fed up to confirm each outgoing connection I've place a
view->UpdateDialogPrefL(ECommDbDialogPrefWarn); |
Of course you can change this property in order to let the DialogBox reappear when an outgoing connection is made.
/* Code for unabling IAP Dialog Box and to set up the connection to work with the gnuBox */
/*
RGenericAgent netAgent;
if (netAgent.Open() == KErrNone)
{
CleanupClosePushL(netAgent);
CCommsDatabase* db=CCommsDatabase::NewL();
CleanupStack::PushL(db);
CCommsDbConnectionPrefTableView*
view = db->OpenConnectionPrefTableViewOnRankLC(ECommDbConnectionDirectionUnknown,1);
CCommsDbConnectionPrefTableView::TCommDbIapConnectionPref pref;
view->GotoFirstRecord();
view->ReadConnectionPreferenceL(pref);
// Gnubox Internet Access Point = 36
// In my case the IAP was : T-Online Internet = 1
pref.iBearer.iIapId = 36;
// Applies the gnuBox IAP for GPRS and CSD
pref.iBearer.iBearerSet = ECommDbBearerGPRS|ECommDbBearerCSD;
view->ChangeConnectionPreferenceRankL(1);
// Warns you if a connection is tried to be made view->UpdateDialogPrefL(ECommDbDialogPrefWarn);
TRequestStatus status;
netAgent.StartOutgoing(status);
User::WaitForRequest(status);
CleanupStack::PopAndDestroy(3); // view, db, netAgent
}
|
And voilà ! Now you can use the full communication APIs of Symbian without having to pay your mobile phone communications : everything is going over your computer thanks to Bluetooth and the gnuBox ! |
|
|
|
 |
R_LIST_QUERY problem (posted
11/17/05 by MatD) |
 |
You may have found this kind of error, while desperately trying to compile your program that is including the R_LIST_QUERY ressource. The output message is strange and tells you :
<empty>
(0) : Link name not found
* RCOMP failed - deleting output files
make[1]: *** [\Symbian\8.1a\S60_2nd_FP3_B\EPOC32\DATA\Z\SYSTEM\APPS\YOURAPP\
C] Error 1 |
This error is easy to solve. It's just because a definition needed to create the ressource R_LIST_QUERY can't be found. Just check your *.rss file and swap the top lines like this. In short you must have something like this. The avkon.rh and avkon.rsg lines should be swapped like this :
#include <avkon.rsg>
#include <avkon.rh> |
|
|
|
|
|
 |
Easy SDK switch (posted
28/09/05 by MatD) |
 |
The first tricky Symbian configuration
problem came when I wanted to develop for UIQ and Series
60. My first try to launch the tools epoc, abld build
and makesis was quite disappointing, because a stupid
message told me to set the EPOCROOT.
For newbies I must say, it's an incomprenhensible message.
Then a kinda setdevices command had to be typed in to
correctly launch the emulator : it's not interesting
to see the UIQ emulator when you actually wanted to
launch the Series60 one ;-) So here's a little help
to switch from one environment to the other:
Create an empty *.bat file and type the following into
it:
Series60 2nd Ed. Feature Pack 3 Beta :
set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3_B\
devices -setdefault @S60_2nd_FP3_B:com.nokia.series60 |
Series60 2nd Ed.
set EPOCROOT=\Symbian\7.0s\Series60_v21\
devices -setdefault @Series60_v2_1:com.nokia.Series60_2_1 |
UIQ 2.1 .
set EPOCROOT=\Symbian\UIQ_21\ devices -setdefault
@UIQ_21:com.symbian.UIQ |
Now you can switch from one environment to the other
without having to worry about changing variables manually! |
|
|
|
|
 |
 |
Nokia 6630 Review (posted 04/27/05 by MatD) |
 |
I tought this mobile phone would be
the 3G/UMTS "killer" phone. Unfortunately
I was quite disappointed to discover that some vital
stuff like headphone, IR, Bluetooth Serial Port were
missing. Read more >>
|
|
|
 |
 |
Setting up a virtual
GSM P2P Network (posted
04/27/05 by MatD) |
 |
As a developer I was faced with a tricky
problem : I had one day just one USIM Card and I had
to test a Peer-2-Peer application I was implementing.
The main problem was to found out how I could communicate
with my different mobile phones. That's why I decided
to play a little bit with the mRouterDeveloper Software
and I was able to make a P2P connection from a Sony
Ericsson P900 to a Motorola A920.
Download
here the explanation (German version)
Download
here the explanation (English version) |
|
|
|
 |
Fake SIS File issue (posted 04/27/05 by MatD) |
 |
One day I had to install and build
up a SIS File for an application with many MBM pictures.
The total size of my SIS File was 212Kb (lol). The problem
was that each time I wanted to install it on my Smartphone,
it took a minute and a half to install everything. So
I decided to try something : creating an application-less
SIS File in order to install my pictures separately
in the same directory than my application directory.
This method works fine, unless you take a test UID for
the SIS File. But be careful ! Don't try to remove your
SIS File with the System/Application Manager, because
your whole directory would be deleted !
; Installs my
configuration files
#{"My Pictures Files"},(0x10005B92),0,0,0
;Supports Series 60 v2.0
(0x101F7960), 0, 0, 0, {"Series60ProductID"}
"GreatPicture.mbm"-"!:\system\apps\MyApp\GreatPicture.mbm" |
|
|
|
 |
External
Ressources |
 |
|