emoji place icons (big images & high quality icons)

these emoji is icon for place category. [1]


House Building

House Building

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e036 57398
Unified (iOS 5): 01F3E0 127968

This is Somebody’s home.

Previous iEmoji name: Small White House


School Building

School Building

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e157 57687
Unified (iOS 5): 01F3EB 127979
A yellow school building with clock tower.

Office Building

Office Building

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e038 57400
Unified (iOS 5): 01F3E2 127970
Elvis has left the office. Skyscraper with many windows.

Japanese Post Office

Japanese Post Office

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e153 57683
Unified (iOS 5): 01F3E3 127971
Old Name: Post Office. This building has a line and a half a red cross on it.

Hospital

Hospital

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e155 57685
Unified (iOS 5): 01F3E5 127973
Clean looking general hospital building with a cross on the front. May be controversial in Islamic and Jewish cultures.

Blue Bank Building

Blue Bank Building

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e14d 57677
Unified (iOS 5): 01F3E6 127974
Go and get your money! This is or I am a Bank. In Japan the alternate meaning can be that you are evading your responsibilities. For example, skipping work.

Convenience Store

Convenience Store

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e156 57686
Unified (iOS 5): 01F3EA 127978
Open 24 hours. We’re open new years day!

Japanese Love Hotel

Japanese Love Hotel

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e501 58625
Unified (iOS 5): 01F3E9 127977
Usually “Japanese Love Hotel” what? You don’t know what a love hotel is?

Hotel

Hotel

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e158 57688
Unified (iOS 5): 01F3E8 127976
This is where you take your hoes.

Wedding Chapel

Wedding Chapel

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e43d 58429
Unified (iOS 5): 01F492 128146
Share your love with the building with the giant cross on it. I love Jesus! Amen.

Church

Church

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e037 57399
Unified (iOS 5): 26EA 9962
God Bless

Department Store

Department Store

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e504 58628
Unified (iOS 5): 01F3EC 127980
I’ve been meaning to get some new uggs!

Sunset over the City

Sunset over the City

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e44a 58442
Unified (iOS 5): 01F307 127751
Isn’t the way the sun lights up the smog romantic? Just Kidding this place is clean. Rising Sun.

Sun goes down in the City

Sun goes down in the City

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e146 57670
Unified (iOS 5): 01F306 127750
The population is obviously over a million where the sun is setting here.Cityscape at Dusk

Robot

Robot

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e50a 58634
Unified (iOS 5): 0
With talking LCD Red Face. Shutup, Robot! You!No one ever knew what this emoji was and far less people ever used it.
Robot was removed from the keyboard in iOS 5.

Japanese Castle

Japanese Castle

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e505 58629
Unified (iOS 5): 01F3EF 127983
A Monk’s shrine at the top of a hill on a clear blue sky day. What are you waiting for Rocky! Run up those millions of stairs, get em tiger!

Western Castle

Western Castle

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e506 58630
Unified (iOS 5): 01F3F0 127984
Here are some onion domes on a Russian cathedral or castle.

Tent

Tent

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e122 57634
Unified (iOS 5): 26FA 9978
Camping under the stars never seemed so lovely. Especially on even nice evenly mowed freshly grass like this one.

Textile Factory

Textile Factory

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e508 58632
Unified (iOS 5): 01F3ED 127981
This factory may be producing a lot of carbon but I am sure they have reduced CFC output. :)

Tokeo Tower

Tokeo Tower

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e509 58633
Unified (iOS 5): 01F5FC 128508
LoL I was way off:This is an orange rocketship ready for takeoff. “I wanna talk to Sampson! Fly me to the moon like that b….”


Mount Fuji

Mount Fuji

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e03b 57403
Unified (iOS 5): 01F5FB 128507
A snowcapped mountain on a clear sunny day. Elevation: 3776m.

Sunrise Over Mountains

Sunrise Over Mountains

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e04d 57421
Unified (iOS 5): 01F304 127748
A scenic view of mountains and a sunrise on the horizon.

Sunrise

Sunrise

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e449 58441
Unified (iOS 5): 01F305 127749
Sun is about coming up on the horizon.

Night with Stars

Night with Stars

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e44b 58443
Unified (iOS 5): 01F303 127747
There are two emojis with this same image. This one is of “Night with Stars” (totally believable) while the other is “Shooting Star”

Liberty Face

Liberty Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e51d 58653
Unified (iOS 5): 01F5FD 128509
The head of the statue of liberty. This could be the full size one in the US or the smaller, original in France. Wonder what we had to do to get it!










































































































































[1] http://www.iemoji.com

emoji smiley icons (big images & high quality icons)

I like emoji, I use it every day. so I want to archive about the emoji icons from the Internet. [1]

 

Smiling Face with Open Mouth and Smiling Eyes

Smiling Face with Open Mouth and Smiling Eyes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e415 58389
Unified (iOS 5): 01F604 128516
One of the original smileys. Old name: Happy Face with Open Mouth and Raised Eyebrows. iEmoji old name: happy! happy! happy!
Softbank: 表情(嬉しい) 「表情(嬉shii)」U+E415

Grinning Face with Smiling Eyes

Grinning Face with Smiling Eyes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e056 57430
Unified (iOS 5): 01F60A 128522
A happy face with eyes closed and rosy cheeks. old name: Happy Face with Grin. iEmoji old name: Content. DoCoMo name: ‘He he he’ ウッシッシ utsushitsushi
Softbank: 表情(うっしし) 「表情 U+E404

Smiling Face With Open Mouth

Smiling Face With Open Mouth

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e057 57431
Unified (iOS 5): 01F603 128515
Happy Face With Open Mouth. Wide eyed happy face.
Softbank: 表情(笑顔) U+E057

Smiling Face

Smiling Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e414 58388
Unified (iOS 5): 263A 9786
This is the most basic emoji smiling face. Unicode note: “generic smiley”. If you like emoji click like on this face!
Apple / Softbank: U+E414

Winking Face

Winking Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e405 58373
Unified (iOS 5): 01F609 128521
Happy smiling face winking at you. iEmoji old name: WINK!!! Softbank: 表情(ウィンク) 「表情(uinku)」U+E405

Smiling Face With Heart-Shaped Eyes

Smiling Face With Heart-Shaped Eyes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e106 57606
Unified (iOS 5): 01F60D 128525
Happy face in love. old name: Face With Heart-Shaped Eyes. iEmoji old name: Lovestruck.
Softbank: 表情(ラブラブ) 「表情(raburabu)」U+E106
DoCoMo: ‘Heart shaped eyes’ 目がハート 「目gahaato」U+E726

Face Throwing a Kiss

Face Throwing a Kiss

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e418 58392
Unified (iOS 5): 01F618 128536
Face Blowing a Kiss and Winking. Kiss. iEmoji old name: blow a kiss ;) .
Softbank: 表情(投げキッス) 「表情(投gekitsusu)」U+E418
DoCoMo: duplicate of ‘Heart shaped eyes’ 目がハート 「目gahaato」U+E726

Kissing Face With Closed Eyes

Kissing Face With Closed Eyes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e417 58391
Unified (iOS 5): 01F61A 128538
Passionate kiss. Puckered lips 2 (more forceful kiss, eyes squinting)
old name: Face Kissing.
iEmoji old name: Passionate.
Softbank: 表情(チュ) 「表情(chiyu)」U+E417
DoCoMo: duplicate of ‘Heart shaped eyes’ 目がハート 「目gahaato」U+E726

Flushed Face

Flushed Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e40d 58381
Unified (iOS 5): 01F633 128563
Apparently this Emoji is supposed to mean Embarrassment. Could also mean: Bug-eyed straight face, Can’t believe what just happened.
iEmoji old name: WHAT???
Unicode note: Red Tinge Around Eyes
Softbank: 表情(ぽっ) 「表情(potsu)」U+E40D
Google: U+FE32F

Relieved Face

Relieved Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e40a 58378
Unified (iOS 5): 01F60C 128524
Took a deep breath. Normal face with closed eyes and happy. Not blushing.
iEmoji old name: Satisfied
Softbank: 表情(ほっ) 「表情(hotsu)」U+E40A
DoCoMo: ‘Relief face’ ほっとした顔 「hotsutoshita顔」U+E721
Google: U+FE33E

Grinning Face with Smiling Eyes

Grinning Face with Smiling Eyes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e404 58372
Unified (iOS 5): 01F601 128513

Happy and content as ever with self. This is the LiL Jon face showing his Grill. #WINNING!In iOS 5 this emoji changed from “Face with Look of Triumph” to it’s current name, or I was wrong to give it that name in the first place. I don’t think I was wrong, but I could have been wrong. It has happened before. Either way, it’s an awesome face. Thank you Apple!

http://unicode.org/~scherer/emoji4unicode/snapshot/utc.html#e-328


Face with Stuck-Out Tongue and Winking Eye

Face with Stuck-Out Tongue and Winking Eye

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e105 57605
Unified (iOS 5): 01F61C 128540
Happy cock-eyed face with tongue out. Messing around. Joking.
iEmoji old name: Goofy Smile
old name: Winking Face with Stuck-Out Tongue
Softbank: 表情(あっかんべー) 「表情(atsukanbee)」U+E105
DoCoMo: ‘Sticking tongue out’ あっかんべー 「atsukanbee」 U+E728

Face with Stuck-Out Tongue and Tightly-Closed Eyes

Face with Stuck-Out Tongue and Tightly-Closed Eyes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e409 58377
Unified (iOS 5): 01F61D 128541
So happy you can’t control yourself. Probably drunk. Kidding, not serious.
Unicode Note: with eyelids pulled down for additional effect.
iEmoji old name: Extatic
Softbank: 表情(いー) 「表情(ii)」U+E409
Google: U+FE32A

Unamused Face

Unamused Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e40e 58382
Unified (iOS 5): 01F612 128530
“I am not amused”
Expressionless Face -_-
. This is the first SMH face.
iEmoji old name: Depressed, Generally unhappy mood. (I was way off. lol)
Softbank: 表情(しらー) 「表情(shiraa)」U+E40E
DoCoMo: ‘Expressionless face’ ボケーっとした顔 「bokeetsutoshita顔」U+E725
Google: U+FE326

Smirking Face

Smirking Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e402 58370
Unified (iOS 5): 01F60F 128527
Smile in a way that is affected by smugness or scorn.
Unicode note: half smile in some cases
iEmoji old name: Smirk
Softbank: 表示(冷笑) U+E402

Face with Cold Sweat

Face with Cold Sweat

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e108 57608
Unified (iOS 5): 01F613 128531
Very worried. Anxious, clammy hands or skin.
Unicode note: with troubled look
iEmoji old name (incorrect): Crying. Crying face with tear drop.
Softbank: 表情(冷や汗) 「表情(冷ya汗)」U+E108
DoCoMo: ‘Cold sweat 2′ 冷や汗2 「冷ya汗2」U+E723

Pensive Face

Pensive Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e403 58371
Unified (iOS 5): 01F614 128532
Pensive (google: define pensive) – Adjective -
Engaged in, involving, or reflecting deep or serious thought.
Synonyms:
thoughtful – reflective – wistful – meditativeIn iOS 5 this emoji’s name changedPrevious iEmoji Name: Weary Face
Tired. Distraught. Saddened. A somber mood is shown.
iEmoji old name: unhappy
Unicode old name: Anguished Face
Softbank: 表情(考え中) 「表情(考e中)」U+E403

Disappointed Face

Disappointed Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e058 57432
Unified (iOS 5): 01F61E 128542
Depressed or discouraged by the failure of one’s hopes or expectations. This is SMH #2.
iEmoji old name: Very sad
Softbank: 表情(がっかり) 「表情(gatsukari)」U+E058
DoCoMo: ‘Disappointed face’ がく~(落胆した顔) 「gaku~(落胆shita顔)」U+E6F2

Confounded Face

Confounded Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e407 58375
Unified (iOS 5): 01F616 128534
This is the Fail face! Confused, frustrated, bewildered. To Fail.
iEmoji old name: Starting to Cry. An expression that crying is inevitable.
Softbank: 表情(困惑) U+E407
Google: U+FE33F

Disappointed but Relieved Face

Disappointed but Relieved Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e401 58369
Unified (iOS 5): 01F625 128549
To look down upon something but there is hope. SMH#3
iEmoji old name: Sad with small tear. Shedding a single tear.
表情(やれやれ) 「表情(yareyare)」 U+E401
check it out:

http://unicode.org/~scherer/emoji4unicode/snapshot/utc.html#e-345


Face with Open Mouth and Cold Sweat

Face with Open Mouth and Cold Sweat

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e40f 58383
Unified (iOS 5): 01F630 128560
Exasperated Face
Unicode note: Exasperated, frustrated, impatient (sweating)
iEmoji old name: Feeling blue, crying, depressed.
Softbank: 表情(おろおろ) 「表情(orooro)」U+E40F
Google: U+FE325

Fearful Face

Fearful Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e40b 58379
Unified (iOS 5): 01F628 128552
Full of fear, In shock, pale, probably shaking in fear.
iEmoji old name: Feeling blue, suprised. Being startled by an event and still crying.
Unicode note: Pale in fear
Softbank: 表情(がーん) 「表情(gaan)」U+E40B
DoCoMo: ‘Very thin’ げっそり 「getsusori」U+E757
KDDI: ‘Very thin’ げっそり 「getsusori」U+E757

Persevering Face

Persevering Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e406 58374
Unified (iOS 5): 01F623 128547
Bolster, sustain, or uphold. Insist. To persist in anything undertaken. To maintain in spite of difficulty or discouragement; continuing steadfastly. A champ!
iEmoji old name: Sad and annoyed. Nothing seems to be doing right.
Softbank: 表情(あちゃー) 「表情(achiyaa)」U+E406
DoCoMo: ‘Enduring face’ がまん顔 「gaman顔」U+E72B

Crying Face

Crying Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e413 58387
Unified (iOS 5): 01F622 128546
A face tearing up. Very sad. Something negative must have happened.
iEmoji old name: Why are you making me cry. A crying face with an attitude suggesting the other person caused it.
Unicode note: 1 or 2 tear drops
Softbank: 表情(悲しい) 「表情(悲shii)」U+E413
DoCoMo: ‘Tear’ 涙 U+E72E
Google: U+FE339

Loudly Crying Face

Loudly Crying Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e411 58385
Unified (iOS 5): 01F62D 128557
The subject is crying loudly with tears streaming down their face.
iEmoji old name: Bawling with tears streaming
Unicode note: lots of tears
Softbank: 表情(大泣き) 「表情(大泣ki)」U+E411
DoCoMo: ‘Crying’ 泣き顔 「泣ki顔」U+E72D

Face with Tears of Joy

Face with Tears of Joy

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e412 58386
Unified (iOS 5): 01F602 128514
The person is crying with a smile on their face. Happy.
iEmoji old name: Tears of joy
Unicode old name: Happy and Crying Face
Softbank: 表情(泣き笑い) 「表情(泣ki笑i)」U+E412
Google: U+FE334

Astonished Face

Astonished Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e410 58384
Unified (iOS 5): 01F632 128562
Incapacitated from astonishment. Sheer disbelief. Anime Comical knockout, dizzy.
iEmoji old name: Comically surprised beyond belief
Softbank: 表情(ふらふら) 「表情(furafura)」U+E410
DoCoMo: ‘Dizzy’ ふらふら 「furafura」U+E6F4
Google: U+FE322

Face Screaming in Fear

Face Screaming in Fear

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e107 57607
Unified (iOS 5): 01F631 128561
Overwhelming fear, suprised probably pale afterwords, scare tactics.
iEmoji old name: About to scream, depressed.
Unicode note: Shocking (like Edvard Munch’s “The Scream”)
Softbank: 表情(ひえ~) 「表情(hie~)」U+E107
Google: U+FE341

Angry Face

Angry Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e059 57433
Unified (iOS 5): 01F620 128544
The person is angry with something.
iEmoji old name: Peeved or slightly angry.
Softbank: 表情(ぶんぶん) 「表情(bunbun)」U+E059
DoCoMo: ‘Angry face’ ちっ(怒った顔) 「chitsu(怒tsuta顔)」U+E6F1

Pouting Face

Pouting Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e416 58390
Unified (iOS 5): 01F621 128545
Pouting never looked so angry!In iOS 5 the name changed to pouting face. Your guess is as good as mine on this one.iEmoji Definition:
The person is very angry with something. You should probably back off.Previous iEmoji Name: Red in the face with extreme anger

Sleepy Face

Sleepy Face

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e408 58376
Unified (iOS 5): 01F62A 128554
A balloon dangling from one nostril (a “snot bubble”) indicates sleep. Said bubble inflating and deflating as they snore. Usually done when a character sleeps at an inappropriate moment (e.g. during class) [cite: manga iconography wiki]
iEmoji old name (way off): Tear shed but getting over it. Sad with a tear but not crying that bad.(lol)
Softbank: 表情(あくび) 「表情(akubi)」U+E408
DoCoMo: ‘Sleepy (sleep)’ 眠い(睡眠) 「眠i(睡眠)」U+E701
Google: U+FE342

Face with Medical Mask

Face with Medical Mask

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e40c 58380
Unified (iOS 5): 01F637 128567
They are sick, contagious, they are trying to be courteous by not spreading disease.
Unicode note: Under the weather (wearing a breathing mask)
iEmoji old name: Won’t say a word. Mouth is covered. They won’t talk.
Unicode old name: Face with Mask
Softbank: 表情(マスク) 「表情(masuku)」U+E40C
Google: U+FE32E

Imp

Imp

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e11a 57626
Unified (iOS 5): 01F47F 128127
The emoji has horns so which look vengeful but it is a Cute Devil Emoji, so don’t worry.
Unicode note: Devil (cute)
Softbank: 悪魔 U+E11A
Google: U+FE1B2

Extraterrestrial Alien

Extraterrestrial Alien

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e10c 57612
Unified (iOS 5): 01F47D 128125
Perhaps you said something the other person didn’t quite understand? [never seen this used legitimately ;) ]
Unicode note: Alien (big eyed type) or UFO.
Softbank: 宇宙人 U+E10C
KDDI: UFO U+E50E

Yellow Heart

Yellow Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e32c 58156
Unified (iOS 5): 01F49B 128155
iEmoji old name: Love with a heart of gold honest and true. Upstanding Love.
Softbank: ハート(黄) 「haato(黄)」U+E32C
Google: U+FEB15

Blue Heart

Blue Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e32a 58154
Unified (iOS 5): 01F499 128153
Unicode note: Heart with blue color
Softbank: ハート(青) 「haato(青)」 U+E32A

Purple Heart

Purple Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e32d 58157
Unified (iOS 5): 01F49C 128156
Purple heart maybe forbidden love. Not military related.
Unicode note: Heart with purple color
Softbank: ハート(紫) 「haato(紫)」U+E32D

Pink Growing Heart

Pink Growing Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e328 58152
Unified (iOS 5): 01F497 128151
The love is growing in this one and the heart is pink but we love Apple Computer none the less.
Old definition: iEmoji describes it as: Love that is cute is expressed.
Unicode definition is Growing Heart.
Unicode Note: Heart growing bigger
Softbank: ハート(ドキドキ) 「haato(dokidoki)」 U+E328

Green Heart

Green Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e32b 58155
Unified (iOS 5): 01F49A 128154
Green Heart possibly envious love or just looks cool.
Unicode: Heart with Green color

Red Heart

Red Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e022 57378
Unified (iOS 5): 2764 10084
The symbol for love <3

Broken Heart

Broken Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e023 57379
Unified (iOS 5): 01F494 128148
Love that has recently turned sour, “broke my heart”.
Softbank: ハートブレイク 「haatobureiku」U+E023
DoCoMo: ‘Heartbreak’ 失恋U+E6EE

Beating Heart

Beating Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e327 58151
Unified (iOS 5): 01F493 128147
Pulsating heart emoji. “I can hear your heart beat.” If that isn’t the definition of love then I don’t know what is. What is love!This emoji icon was the replacement for “Sparkling Heart” in iOS 5 but is still available and accessible like many others!

Heart with Arrow

Heart with Arrow

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e329 58153
Unified (iOS 5): 01F498 128152
Love that has been hit with Cupid’s arrow. Hopelessly in love.
iEmoji old name Arrow through Heart
Unicode note: heart with an arrow through it
Softbank: ハート(矢がささる) 「haato(矢gasasaru)」U+E329

Sparkles

Sparkles

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e32e 58158
Unified (iOS 5): 2728 10024
Sparkling new. Also Meaning good and truth.
Softbank: ぴかぴか 「pikapika」U+E32E
DoCoMo: ‘Shining new’ ぴかぴか(新しい) 「pikapika(新shii)」U+E6FA

Glowing Star

Glowing Star

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e335 58165
Unified (iOS 5): 01F31F 127775
5 pointed star with mystical and magical essence. Perfection. Womp.Sparkes, yellow triangles (that’s the glowing, pulsating part) were added to this star and without a doubt we have grown to love them.In iOS 5 this image was updated. The old star is now called “White Medium Star” and is still accessible today!Unicode note: Animated pulsating star in orange color
Softbank: 輝く星 「輝ku星」U+E335
DoCoMo: [☆]

Anger Symbol

Anger Symbol

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e334 58164
Unified (iOS 5): 01F4A2 128162
Comic Book Style Symbol Where a Punch Lands.
iEmoji old name: Anger Sign
Unicode note: Angry
Softbank: 怒り 「怒ri」U+E334
DoCoMo: ‘Angry’ むかっ(怒り) 「mukatsu(怒ri)」U+E6FC

Exclamation Point

Exclamation Point

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e337 58167
Unified (iOS 5): 2755 10069
Used to say caution.Old iEmoji Name: Red Exclemation PointUnicode name: White Exclamation Mark Ornament
Softbank: びっくりマーク(アニメ) 「bitsukurimaaku(anime)」
U+E337iOS 5 had changed this from red to a grayish gradient color but the old red, now epic red (in my book) is still convert-able!

Question Mark

Question Mark

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e336 58166
Unified (iOS 5): 2754 10068
The question is bigger than usual. Used to invoke curiosity.
Old iEmoji Name: Red Question Mark
Unicode name: White Question Mark Ornament
Unicode note: moving question mark
Softbank: はてなマーク(アニメ) 「hatenamaaku(anime)」
U+E336iOS 5 had changed this from red to a grayish gradient color but the old red, now epic red (in my book) is still convert-able!

Sleeping Symbol

Sleeping Symbol

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e13c 57660
Unified (iOS 5): 01F4A4 128164
It is the ZZZ icon. Great icon if you’re woken up by your phone just send this icon and that’s case in point.
Unicode note: Sleepy (“zzz”)
Softbank: ZZZ(眠り) 「ZZZ(眠ri)」U+E13C

Running Dash

Running Dash

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e330 58160
Unified (iOS 5): 01F4A8 128168
Dash Symbol, Running Dash .. the cloud of dust left behind.
Softbank: ダッシュ 「datsushiyu」U+E330

Splashing Sweat Symbol

Splashing Sweat Symbol

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e331 58161
Unified (iOS 5): 01F4A6 128166
Sweat. Call it what you want but Whatever it is it is wet. [insert innocent emoji]
Softbank: 汗 U+E331

Multiple Musical Notes

Multiple Musical Notes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e326 58150
Unified (iOS 5): 01F3B6 127926

A few Music eighth-note symbols.Previous iEmoji name: Song, Music


Musical Note

Musical Note

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e03e 57406
Unified (iOS 5): 01F3B5 127925

Two eighth note symbols connected together by a beam.Previous name: Generic Music Notes


Fire

Fire

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e11d 57629
Unified (iOS 5): 01F525 128293
A fire or burning icon.

Dog Dirt

Dog Dirt

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e05a 57434
Unified (iOS 5): 01F4A9 128169
I’ve seen this one before and I’m not sure what to think about it. I kinda want to put it in a bag and light it on someone’s doorstep but I could be wrong.
iEmoji old name: not going to guess
Unicode old name: Dung
Unicode name: Pile of Poo
Softbank: ダッシュ 「datsushiyu」U+E330

Thumbs Up Sign

Thumbs Up Sign

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e00e 57358
Unified (iOS 5): 01F44D 128077
Good deal, this is a positive response.
iEmoji old name: Thumbs up!
Softbank: 手(Good) U+E00E
DoCoMo: Thumbs up’ 指でOK 「指deOK」U+E727

Thumbs Down Sign

Thumbs Down Sign

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e421 58401
Unified (iOS 5): 01F44E 128078
Nay they say.
iEmoji old name: Thumbs down
Softbank: 手(ブーイング) 「手(buuingu)」U+E421
DoCoMo: ‘Bad (downward arrow)’ バッド(下向き矢印) 「batsudo(下向ki矢印)」U+E700

OK Hand Sign

OK Hand Sign

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e420 58400
Unified (iOS 5): 01F44C 128076
Only the Thumb and index finger connected to make a circle with no additional gesture usually means you’re perfect, don’t worry about it.
It’s only a coinsidence that the hex for this Apple/Softbank emoji is e420 :)
iEmoji old name: Okay sign.
Softbank: 手(オッケー) 「手(otsukee)」U+E420
DoCoMo:’Accept’ 決定 U+E70B
KDDI: OK!U+EAD4

Fisted Hand Sign

Fisted Hand Sign

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e00d 57357
Unified (iOS 5): 01F44A 128074
Also a fisted hand! Like you gunna punch. Could also mean Middle Finger! This Emoji represents defiance or solidarity. Them be fightin’ emojis.
iEmoji old name: Middle Finger
Unicode note: Punch
Softbank: 手(パンチ) 「手(panchi)」U+E00D

Raised Fist

Raised Fist

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e010 57360
Unified (iOS 5): 270A 9994
Victory Hand! Also Charlie Sheen Winning!
Unicode note: paper in Rock, Paper, Scissors game
Harmonize design with Raised Hand and Victory Hand.
iEmoji old name: Letter ‘E’ in Sign, A hand showing the letter ‘e’ in sign language.
Softbank: 手(グー) 「手(guu)」 U+E010

Victory Hand

Victory Hand

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e011 57361
Unified (iOS 5): 270C 9996
Scissors in Rock, Paper, Scissors game. Commonly used as “Victory” sign. Raised Fist. Raised Hand.
Softbank: 手(パー) 「手(paa)」U+E012

Waving Hand Sign

Waving Hand Sign

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e41e 58398
Unified (iOS 5): 01F44B 128075
A hand waving at you.
iEmoji old name: Wave
Unicode note: Waving hello
Softbank: (baibai)」U+E41E

Raised Hand

Raised Hand

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e012 57362
Unified (iOS 5): 270B 9995
Unicode Description: Paper in Rock, Paper, Scissors game.
iEmoji old name: Stop hand. A hand with fingers together and palm facing you. Depends on the context.

Open Hands Sign

Open Hands Sign

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e422 58402
Unified (iOS 5): 01F450 128080
Unicode description: Ohhaa! Good Morning Gesture. Open Hands with the Money Sign.
iEmoji old name: Open Hands
Softbank: 手(おっはー) 「手(otsuhaa)」

Fuck You LoL

Fuck You LoL

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e22e 57902
Unified (iOS 5): 01F446 128070
This icon looks most like the middle finger. Since this emoji is a must have, so it will be.

Point Down “Its going down right here”

Point Down “Its going down right here”

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e22f 57903
Unified (iOS 5): 01F447 128071
Hand pointing downwards. This is Emoji swag for this is where the party is at. When you gets here we are going to get drunk, consume illegal substances like weed and coke, and trash the place completely.

Point Right

Point Right

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e231 57905
Unified (iOS 5): 01F449 128073
Hand pointing to a word or icon to the right.

Point Left

Point Left

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e230 57904
Unified (iOS 5): 01F448 128072
Hand pointing to a word or icon to the left.

Person Raising Both Hands in Celebration

Person Raising Both Hands in Celebration

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e427 58407
Unified (iOS 5): 01F64C 128588
Raising both hands. Banzai! Winning. (wow, lots of winning emojis we have!)
DoCoMo: \(^o^)/
iEmoji old name: Chinese Finger Trip Got My Thumbs. (wow, terrible guess lol) This is an image of the well known trick the Chinese have mastered putting your thumbs in a device where it is painful to remove them without patience or help.

Pray

Pray

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e41d 58397
Unified (iOS 5): 01F64F 128591
Hands together as if you were praying. Please.Unicode name: Person with Folded Hands


Hand with Up Pointing Index Finger

Hand with Up Pointing Index Finger

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e00f 57359
Unified (iOS 5): 261D 9757
I’m number 1! Winning!
Unicode note: No.1
iEmoji old name: Small hand pointing up. A different hand this time pointing up at something. It does not have a white glove so it has nothing to do with Michael Jackson.
Softbank: 手(指差し) 「手(指差shi)」U+E00F
Unicode: U+261DUnicode Name: White Up Pointing Index


Clapping Hands Sign

Clapping Hands Sign

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e41f 58399
Unified (iOS 5): 01F44F 128079
Hands clapping or clapping sounds. Congratulations! You Win!
iEmoji old name: Clap!
Unicode note: Clapping

Flexed Biceps

Flexed Biceps

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e14c 57676
Unified (iOS 5): 01F4AA 128170
A man’s arm showing off or flexing a bicep. Strong arm of the law. Could also be roll up a sleeve or showing how strong you are.
iEmoji old name: Flexed Bicep, Strong
Unicode note: strong, muscled

Man Walking Left

Man Walking Left

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e201 57857
Unified (iOS 5): 01F6B6 128694
A man with a red shirt and blue pants casually walking to the left.Unicode name: Pedestrian


Man Running Left

Man Running Left

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e115 57621
Unified (iOS 5): 01F3C3 127939
A white man with a red shirt and blue pants running somewhere. A runner.

Man and Woman Holding Hands

Man and Woman Holding Hands

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e428 58408
Unified (iOS 5): 01F46B 128107
An obviously Japanese (and heterosexual) couple walking together. Probably strolling in the park. She is wearing a fashionable orange dress he is wearing a blue shirt and dark kakis.Old iEmoji Name: A Couple Walking Together


Dancer

Dancer

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e51f 58655
Unified (iOS 5): 01F483 128131
Woman in a red dress dancing. Night out on the town!
Unicode note: Dancer (SoftBank = flamenco, KDDI = disco)
Softbank: フラメンコ 「furamenko」U+E51F

Ballet Dancers

Ballet Dancers

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e429 58409
Unified (iOS 5): 01F46F 128111
Female Ballet Dancers in unison. Ballerinas dancing in identical leotard costumes.

Unicode name: Woman with Bunny Ears


Face With Ok Gesture

Face With Ok Gesture

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e424 58404
Unified (iOS 5): 01F646 128582
Meaning: OK. Arms Raised, Making an “O”. Female with arms up and hands on her head forming an O means “Yes”. Forms pair with female with arms crossed.
Unicode note: Icon can be Person or a cat.

Face With No Good Gesture

Face With No Good Gesture

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e423 58403
Unified (iOS 5): 01F645 128581
No good. No go. This is the sign to stop. You are probably doing something it wrong.

Information Desk Person

Information Desk Person

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e253 57939
Unified (iOS 5): 01F481 128129
Knowledgeable person at an information desk kindly explaining process or direction.

Softbank: 案内(カスタマーサービス) 「案内(kasutamaasaabisu)」
U+E253

check it out:

http://unicode.org/~scherer/emoji4unicode/snapshot/utc.html#e-1B4


Person Bowing Deeply

Person Bowing Deeply

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e426 58406
Unified (iOS 5): 01F647 128583
Very truly sorry, a cat or a person.Please Forgive Him.

Kiss

Kiss

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e111 57617
Unified (iOS 5): 01F48F 128143
Two people kissing. A couple in love about to smooch.
iEmoij old name: Man and Woman about to Kiss

Couple with Heart

Couple with Heart

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e425 58405
Unified (iOS 5): 01F491 128145
A man and woman sharing a heart excited and happy to see each other. They are possibly lost for words.
iEmoji old name: A Couple in Awe of Each Other

Female with Bra on her Head

Female with Bra on her Head

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e31e 58142
Unified (iOS 5): 01F486 128134
Unicode name: Face Massage
iEmoji note: Too funny, I am leaving this one incorrect.
iEmoji desc:
Sometimes to look funny a person will put a bra on their head, and yes it does look funny.

Hair Cut!

Hair Cut!

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e31f 58143
Unified (iOS 5): 01F487 128135
A woman who is going to get a haircut. Compliment her on her new look!

Nail Care

Nail Care

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e31d 58141
Unified (iOS 5): 01F485 128133
Applying pink nail polish to some well manicured nails.

Happy Man

Happy Man

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e001 57345
Unified (iOS 5): 01F466 128102
It is a smiling man with brown hair.

Happy Girl

Happy Girl

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e002 57346
Unified (iOS 5): 01F467 128103
She is happy and has pig tails.

Woman with Red Lips

Woman with Red Lips

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e005 57349
Unified (iOS 5): 01F469 128105
A happy woman who looks good and is ready to go out for the night.

Man with a Mustache

Man with a Mustache

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e004 57348
Unified (iOS 5): 01F468 128104
This man has black hair and a bristly mustang. Sometimes facial hair is a plus.

A Baby

A Baby

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e51a 58650
Unified (iOS 5): 01F476 128118
The person is acting like a baby. Or a cute baby with one curl for hair.

Older Woman

Older Woman

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e519 58649
Unified (iOS 5): 01F475 128117
It’s an old woman. You can tell by the hair style. Somebody’s Grandma.

Previous name: Old Woman


Older Man

Older Man

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e518 58648
Unified (iOS 5): 01F474 128116
A grandpa, an Opa! He is friendly and happy with a bald head.

Previous iEmoji name: Old Man


A Blonde Young Boy

A Blonde Young Boy

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e515 58645
Unified (iOS 5): 01F471 128113
A happy young boy of obviously Arian descent.

Man With Gua Pi Mao

Man With Gua Pi Mao

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e516 58646
Unified (iOS 5): 01F472 128114
This is a young boy wearing a very special beanie cap.

Man with Turban

Man with Turban

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e517 58647
Unified (iOS 5): 01F473 128115
An Indian man with a turban. This icon maybe considered not politically correct in America.

Construction Worker

Construction Worker

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e51b 58651
Unified (iOS 5): 01F477 128119
A hard hatted construction worker. Apparently yellow for high visibility.
iEmoji old name: Yellow Hat with Green Cross. A thinking cap meaning being positive and optimistic. de Bono System.

Police Officer

Police Officer

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e152 57682
Unified (iOS 5): 01F46E 128110
This person has a Blue Police officer’s hat. Be careful what you say.

Baby Angel

Baby Angel

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e04e 57422
Unified (iOS 5): 01F47C 128124
A cute little white winged angel with curly hair and a blue halo. Cupid?

Previous name: An Angel


Princess

Princess

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e51c 58652
Unified (iOS 5): 01F478 128120
Use this to describe compliment a girl by telling them how much you mean to them.

Man with Oversized Beanie

Man with Oversized Beanie

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e51e 58654
Unified (iOS 5): 01F482 128130
An Asian kid wearing a large knit cap or “head condom”. Preferably in tropical humidity.

Actual emoji name: Guardsman


Skull

Skull

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e11c 57628
Unified (iOS 5): 01F480 128128
This is a Human skull. Some people believe draw inspiration from human bone growth. Others, not so much.

Footsteps

Footsteps

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e536 58678
Unified (iOS 5): 01F463 128099
A trail of red footsteps from walking in blood or another red substance.

Kiss Mark

Kiss Mark

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e003 57347
Unified (iOS 5): 01F48B 128139
A Lipstick Kiss on a flat surface. Women, please leave marks like these everywhere possible because men love it.

Old iEmoji name: Red Lips
Relaxed small succulent red lips. It means you want to kiss them or act sexy for someone.

This icon image was updated in iOS 5.


Open Red Lips

Open Red Lips

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e41c 58396
Unified (iOS 5): 01F444 128068
An open mouth with red lips. User discretion is advised with this one. Want a suggestive icon?

Ear, Listen

Ear, Listen

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e41b 58395
Unified (iOS 5): 01F442 128066
A human ear in the listening position. It means they are listening.

Googily Eyes

Googily Eyes

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e419 58393
Unified (iOS 5): 01F440 128064
Funny looking cartoon eyes looking left. :)

Nose

Nose

Emoji Code Set Hexidecimal (hex) Decimal (dec)
Softbank (pre iOS 5): e41a 58394
Unified (iOS 5): 01F443 128067
Do you smell something?

[1] http://www.iemoji.com

 


Set the connection timeout for TCP connections through the BlackBerry MDS Connection Service

 

This is how to set the connection timeout for TCP connections through the BlackBerry MDS Connection Service.[1]

When making a Transmission Control Protocol (TCP) connection from a BlackBerry smartphone, the default connection timeout is 2 minutes. This value takes into consideration the possible time it can take a BlackBerry smartphone to be granted access to send data on the wireless network, and for the connection to travel over the wireless network over the Internet to the destination server and back again. In some circumstances, this value is too long. When making a socket or Hypertext Transfer Protocol (HTTP) connection through the BlackBerry® Mobile Data System (BlackBerry MDS) Connection Service, it is possible to set the timeout value to a lower value than the value that is configured in the BlackBerry MDS Connection Service. By default, the value is 2 minutes. It is not possible to extend beyond the limit configured on the server. Use theConnectionTimeout parameter to specify the timeout value. This parameter accepts a numerical value in milliseconds. The following is an example of an HTTP connection with a timeout value of 1 minute:

StreamConnection s = (StreamConnection)Connector.open("http://myserver.com/mypage.html;ConnectionTimeout=60000;deviceside=false");
HttpConnection httpConn = (HttpConnection)s;

 

Note: The ConnectionTimeout parameter is not supported by direct TCP connections or connections through a Wireless Application Protocol (WAP) gateway. Only TCP connections, made through the BlackBerry MDS Connection Service, support this parameter.

[1] http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800563/How_To_-_Control_the_connection_timeout_for_TCP_connections_through_BlackBerry_Mobile_Data_System_Connection_Service.html?nodeid=1235131&vernum=0


nginx rewrite rules with php-fpm for WordPress

 

Start by CentOS support php 5.3, I start to migrate from php-cgi to php-fpm.

Previously, I just use this rewrite rules for my WordPress setting:

    location / {
        #if (!-f $request-filename) { return 404; break; }
        rewrite "^/([^\.]*)$" /index.php?q=$1 last;
        root   /home/v/vaksin/;
        index  index.php index.html;
    }

 

But know since I use php-fpm, the rewrite rules above is not running well.

Now, I changed the configuration like this:

    location / {
        #if (!-f $request-filename) { return 404; break; }
        root   /home/v/vaksin/;
        index  index.php index.html;
            rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
            if (!-e $request_filename) {
                  rewrite ^.+/?(/wp-.*) $1 last;
                  rewrite ^.+/?(/.*\.php)$ $1 last;
                  rewrite ^(.+)$ /index.php?q=$1 last;
            }
    }

 

and this website now is back online :-)

*previously the problem is we can’t see the article detail, because it redirected to 404 (page not found).

 


Create Customized Field to Show Graphs on BlackBerry

 

Sometimes you need to show Graphs on BlackBerry Applications, instead of using Google chart as image on the Applications,

you can use the Blackberry Charts samples below.

The following sample code demonstrates how to create custom graph fields. The sample contains the following classes:

  • BarGraphField – A custom field that draws a bar graph
  • BarScreen – A screen demonstrating the use of BarGraphField
  • BlackBerryGraphs – The main application
  • GraphDemoScreen – The introductory screen for the sample application that allows a BlackBerry smartphone user to choose the type of graph to preview
  • GraphField – The base class that the other *GraphFields extend
  • LegendField – A custom field that draws a legend
  • LineGraphField – A custom field that draws a line or scatter graph
  • LineScreen – A screen demonstrating the use of LineGraphField
  • PieGraphField – A custom field that draws a pie chart
  • PieScreen – A screen demonstrating the use of PieGraphField and LegendField

The entire sample can be downloaded here. The following are some sample screen shots that illustrate the custom graph fields.

To access the sample code, download the attached BlackBerryGraphs.download-pdf-renameto.zip file.

Bar Graph Demo on BlackBerry App

Line/Scatter Graph Demo on BlackBerry App

Pie Graph Demo on BlackBerry App

[1] http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800505/800345/How_To_-_Create_graph_fields.html?nodeid=1889634&vernum=0


Backdoor Sequence for Production and Development

 

Do you ever use alt+LGLG or alt+ESCR in the homescreen?

that’s sample of Backdoor sequence usage..

[1]

Description

 

On a BlackBerry device, there are a number of backdoor sequences that can be invoked when the home screen is displayed (such as holding the ALT key and typingESCR to show the BlackBerry device information). With JDE 4.2, this same backdoor functionality can be included in any screen via two new methods in the net.rim.device.ui.Screen class that can be overridden: openProductionBackdoor(int backdoorCode) and openDevelopmentBackdoor(int backdoorCode). The difference between the two methods is that openDevelopmentBackdoor(int backdoorCode) will only be invoked if the application is run in the simulator (but if both methods are implemented, then both methods will be invoked from within the simulator).

 

The following is an example implementation that will cause VAKS to be used as a backdoor sequence.

 

Note: This backdoor sequence will only be executed if the screen implementing this code is in the foreground.

 

protected boolean openProductionBackdoor(int backdoorCode) {
    switch( backdoorCode ) {
         	 // BACKDOOR – converts four chars to an int via bit shifting and a
          // bitwise OR
          case ( 'V' << 24 ) | ( 'A' << 16 ) | ( 'K' << 8 ) | 'S':
            UiApplication.getUiApplication().invokeLater (new Runnable() {
                public void run()
                {
                   Dialog.inform("Backdoor sequence received");
                }
            });
            return true; // handled
        }
        return super.openProductionBackdoor(backdoorCode);
    }

 

[1] http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800505/800256/How_To_-_Use_a_Backdoor_Sequence.html?nodeid=1287199&vernum=0


Clickable text or label field

Sometimes we need to make a text field or label field with clickable function,
here’s some example gathered from several sources.

[0] overwrite the related methods

LabelField _testLink = new LabelField("Test", Field.FOCUSABLE | Field.USE_ALL_WIDTH) {
    protected boolean navigationClick(int status, int time) {
        System.out.println("Linked");
        return true;
    }
};

[1] href field

import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.FontFamily;
import net.rim.device.api.ui.Graphics;

public class HrefField extends Field {

private String content;
private Font fieldFont;
private int fieldWidth;
private int fieldHeight;
private boolean active = false;
private int backgroundColour = 0xffffff;
private int textColour = 0x333333;
private int maskColour = 0xBBBBBB;

public HrefField(String content) {
super(Field.FOCUSABLE);
this.content = content;
fieldFont = defaultFont();
fieldWidth = fieldFont.getAdvance(content)+2;
fieldHeight = fieldFont.getHeight() + 3;
}

public void setColours(int backgroundColour, int textColour, int maskColour) {
this.backgroundColour = backgroundColour;
this.textColour = textColour;
this.maskColour = maskColour;
invalidate();
}

public void setBackgroundColour(int backgroundColour){
this.backgroundColour = backgroundColour;
invalidate();
}

public void setTextColour(int textColour){
this.textColour = textColour;
invalidate();
}

public void setMaskColour(int maskColour){
this.maskColour = maskColour;
invalidate();
}

public void setFont(Font fieldFont){
this.fieldFont = fieldFont;
}

public int getPreferredWidth() {
return fieldWidth;
}

public int getPreferredHeight() {
return fieldHeight;
}

protected void layout(int arg0, int arg1) {
setExtent(getPreferredWidth(), getPreferredHeight());
}

protected void paint(Graphics graphics) {

if (active) {
graphics.setColor(maskColour);
graphics.fillRect(0, 0, fieldWidth, fieldHeight);
} else {
graphics.setColor(backgroundColour);
graphics.fillRect(0, 0, fieldWidth, fieldHeight);
}

graphics.setColor(textColour);
graphics.setFont(fieldFont);
graphics.drawText(content, 1, 1);
graphics.drawLine(1, fieldHeight-2, fieldWidth-2, fieldHeight-2);
}

protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}

protected void onFocus(int direction) {
active = true;
invalidate();
}

protected void onUnfocus() {
active = false;
invalidate();
}

public static Font defaultFont() {
try {
FontFamily theFam = FontFamily.forName("SYSTEM");
return theFam.getFont(net.rim.device.api.ui.Font.PLAIN, 14);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return null;
}
}

[2] CustomButtonField

package com.thinkingblackberry;

import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Keypad;

public class CustomButtonField extends Field {
	private String label;
	private int textColorUnfocused;
	private int textColorFocused;
	private int backgroundColorUnfocused;
	private int backgroundColorFocused;

	private int horizontalPadding = 5;
	private int verticalPadding = 5;

	public CustomButtonField(String label, int textColorUnfocused,
			int textColorFocused, int backgroundColorUnfocused,
			int backgroundColorFocused, long style) {
		super(style);
		this.label = label;
		this.textColorUnfocused = textColorUnfocused;
		this.textColorFocused = textColorFocused;
		this.backgroundColorUnfocused = backgroundColorUnfocused;
		this.backgroundColorFocused = backgroundColorFocused;
	}

	protected void layout(int maxWidth, int maxHeight) {
		Font font = getFont();
		int width = font.getAdvance(label) + (horizontalPadding * 2);
		int height = font.getHeight() + (verticalPadding * 2);
		// Respect the maximum width and height available from our manager
		setExtent(Math.min(width, maxWidth), Math.min(height, maxHeight));
	}

	protected void paint(Graphics graphics) {
		// Draw background
		graphics.setColor(isFocus() ? backgroundColorFocused : backgroundColorUnfocused);
		graphics.fillRoundRect(0, 0, getWidth(), getHeight(), 10, 10);

		// Draw text
		graphics.setColor(isFocus() ? textColorFocused : textColorUnfocused);
		graphics.drawRoundRect(0, 0, getWidth(), getHeight(), 10, 10);
		int fontWidth = getFont().getAdvance(label);
		graphics.drawText(label, (getWidth()-fontWidth)/2, verticalPadding);
	}

	protected void drawFocus(Graphics graphics, boolean on) {
		// Don't draw the default focus
	}

	protected void onFocus(int direction) {
		super.onFocus(direction);
		invalidate();
	}

	protected void onUnfocus() {
		super.onUnfocus();
		invalidate();
	}

	public boolean isFocusable() {
		return true;
	}

	protected boolean navigationClick(int status, int time) {
		fieldChangeNotify(0);
		return true;
	}

	protected boolean keyChar(char character, int status, int time) {
		if (character == Keypad.KEY_ENTER) {
			fieldChangeNotify(0);
			return true;
		}
		return super.keyChar(character, status, time);
	}

	public String getLabel() {
		return label;
	}
}

[1] http://www.northcubed.com/site/?p=6
[2] http://www.thinkingblackberry.com/source/CustomButtonField.java


Leverage pattern matching in BlackBerry

 

Background

You may have noticed how certain strings are underlined in native BlackBerry smartphone applications. For example, phone numbers are underlined or highlighted when composing or reading messages. Once selected, these special strings are assigned a context-sensitive menu item, for example call a phone number. Third-party applications can take advantage of this functionality to add custom context-sensitive menu items to standard BlackBerry smartphone applications. These menu items can be used to launch a custom application, open the BlackBerry® Browser to a specific URL, send a message, or do any number of other things.

This functionality can be achieved by using one of two application programming interfaces (APIs):

  1. net.rim.device.api.util.StringPattern – This API was introduced in BlackBerry Device Software 4.0 and requires you to implement your own string matching algorithm.
  2. net.rim.blackberry.api.stringpattern.PatternRepository – This API was introduced in BlackBerry Device Software 4.3.0, and allows the use of Perl style regular expressions.

The samples provided in this article match a United States zip code and allow the BlackBerry smartphone user to lookup more information on the zip code.

Procedure

net.rim.device.api.util.StringPattern

The StringPattern source code example uses the string pattern matching that was introduced in BlackBerry Device Software 4.0. It requires implementing another string matching algorithm.

There are four major components required for this implementation

net.rim.device.api.util.StringPattern – This class represents the pattern that you want to recognize. It can be as simple as a zip code, or as complex as an address in its various forms. To write an effective StringPattern, remember that each character typed into the applicable field will be parsed by your implementation. As such, efficiency is important in this class.

net.rim.device.api.ui.component.MenuItem – The MenuItem includes the majority of the implementation for this capability. The MenuItem typically includes or references the action that will occur once a match is found and invoked by the BlackBerry smartphone user. For example, the run method for the MenuItem is invoked when a zip code has been recognized and the BlackBerry smartphone user selects the Lookup Zipcode menu item.

net.rim.device.api.ui.component.ActiveFieldCookie – The ActiveFieldCookie is a container object that allows the StringPattern class to transfer the context-sensitive information to the MenuItem. It also allows the implementation to add the appropriate menu item, or multiple menu items, when a string pattern match is found.

net.rim.device.api.util.Factory – The implementation of the Factory class links the StringPattern to the ActiveFieldCookie when a match is recorded in the StringPattern implementation. Typically, the Factory implementation is quite compact but a necessary requirement for the system.

The ZipCodeLookupSample class provides the starting point for the application. The application is configured as an auto-start system module so that all of the components can be registered upon start up. It is important to note that the main class initializes all of the required components described above, and has been implemented carefully to only initialize these components once.

net.rim.blackberry.api.stringpattern.PatternRepository

The PatternRepository source code sample uses the API that was introduced in BlackBerry Device Software 4.3.0 and allows the use of regular expressions for string matching, which makes the sample much simpler than the prior sample.

There are two major components required for this implementation

net.rim.blackberry.api.stringpattern.PatternRepository – This class will register a Perl-style regular expression or a specific string with the systems pattern repository. When a match is found the ApplicationMenuItem(s) associated with the pattern will appear in the current application’s menu.

net.rim.blackberry.api.menuitem.ApplicationMenuItem- The ApplicationMenuItem includes the action that will occur once a match is found and is invoked by the BlackBerry smartphone user.

The application is once again configured as an auto-start system module. This is done to register the regular expression and menu item with the systems pattern repository upon system start up.

To access the sample code, download the attached ZipCodeLookupSamples.download-pdf-renameto.zip file.

[1] http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800505/800608/How_to_-_Leverage_pattern_matching_in_BlackBerry_smartphone_applications_to_provide_an_integrated_user_experience.html?nodeid=1234285&vernum=0


How to Implement a Web Cache for BrowserField2

So, loading pages on your BrowserField2 application is taking quite some time and yet your app is repeatedly loading the same pages over and over again spending network bandwidth and providing a poor performance experience to users?


You’ve been thinking of implementing a web cache but has no idea how to extend the BrowserField2 (a.k.a. BF2) API for that purpose?


This article is definitely for you!


 


 

Goal

 

This article discusses how the BrowserField2 API (BlackBerry® Device Software 5.0 and later) can be properly extended to implement a simple web cache mechanism that will speed up the loading of pages and resources in a BF2 application significantly reducing bandwidth usage, server load, and ultimately improving the user experience. The code provided (please check the attachments) should serve as a basis for developers to build their own professional caching mechanism tailored to their particular needs.

 

The term “web cache” (from now on simply referred to as “cache“) will be used throughout this article to refer to a cache of HTTP resources (e.g., a web page, an image, a css file) in which HTTP headers and page content (sequence of bytes) are store together in a cache entry and later used to quickly reload HTTP resources. In terms of data persistency the source code provided implements a “short-term cache“, i.e.,  a cache that will not persist data after a device boot. For further information on web caches and related terminology please refer to the corresponding Wikipedia article: http://en.wikipedia.org/wiki/Web_cache.

 

 

BrowserField2 API and the ProtocolController

 

The BrowserField2 API, introduced with the release of BlackBerry Device Software 5.0, allows BlackBerry developers to embed Web content into their Java applications. As a result, developers are able to quickly build BlackBerry applications that easily integrate with legacy back-end web-based systems. In addition, BrowserField2 applications running on OS 6.0 benefit from the high-quality and top-notch performance of the BlackBerry Webkit rendering and Javascript engines.

 

Despite the richness in functionality and ease-of-development provided by the BrowserField2 API, a caching mechanism for loading webpages does not come standard. That is, requesting the same web page twice will require establishing different connections with the web server to retrieve the page’s content. The good news is that a caching mechanism can be implemented straighforwardly by extending the BrowserField2 API, in particular one of its core components called the ProtocolController as we cover next.

 

 

 

 

Figure 1: The Role of the ProtocolController in the BrowserField2 API
(Figure extracted from BlackBerry DEVCON 2010 – DEV49 technical session)

 

 

The ProtocolController, depicted in Figure 1, reprsents the default implementation of the BrowserFieldController abstract component. The ProtocolControllerhandles navigation (e.g., a link was clicked on your page) and resource (e.g., an image or a CSS file needs to be loaded in your page) requests through a variety of protocols (e.g., http, https, local, file) and is responsible for providing a valid connection to a remote resource and, in some cases, for properly displaying the contents of a requested page on the screen.

 

Overriding the ProtocolController allows developers to intercept all kinds of page and resource requests and thus to customize the standard behavior. For instance, an application might be interested in checking the credentials of a user before giving her access to a particular page or resource. In fact, the BlackBerry® WebWorks™ application technology applies this very same strategy.

 

In particular, extending the standard controller is ideal for implementing the caching mechanism cover in this article since all requests are made via the controller. As shown in Figure 1, developers can either extend the abstract BrowserFieldController or its default implementation the ProtocolController. This article will use the latter approach as the ProtocolController provides convenient functionality that can be readily reused.

 

Creating a CacheProtocolController

 

Figure 2 depicts the four components created to implement the BF2 caching system discussed in this article, i.e.,  the CacheManager interface and classesCacheProtocolControllerCacheManagerImpl and CacheItem as depicted in Figure 2. There is also the application entry point class BF2CacheSampleAppthat can be found in the attached source code.

 

 

 

Figure 2: Extending the ProtocolController to create a web cache

 

The CacheProtocolController class extends the default controller to link page requests to the cache component. The cache controller checks if a given page/resource request is cacheable and if so it either retrieves the resource from the cache (cache hit) of downloads the resource and stores it in the cache for later use (cache miss).

 

The code for the CacheProtocolController is show below. Methods handleNavigationRequest() and handleResourceRequest() override the default controller. Method handleNavigationRequest() reuses method handleResourceRequest() to retrieve a connection to the requested resource and afterwards requests the BrowserField to render the content via a call to method displayContent(). Method handleResourceRequest() first checks if the requested resource can be cacheable (using the CacheManager object). If the resource is not cacheable, the CacheProtocolController forwards the call to the standard controller via super.handleResourceRequest(). If the resource is cacheable and is already in the cache and not expired an InputConnection is created by theCacheManager and returned. If the resource is not in the cache, the standard controller’s functionality is called to retrieve a connection to the resource and theCacheManager creates a cache entry for that resource.

 

 

public class CacheProtocolController extends ProtocolController{

	// The BrowserField instance
    private BrowserField browserField;

    // CacheManager will take care of cached resources
    private CacheManager cacheManager;

	public CacheProtocolController(BrowserField browserField) {
		super(browserField);
                this.browserField = browserField;
	}

	private CacheManager getCacheManager() {
		if ( cacheManager == null ) {
			cacheManager = new CacheManagerImpl();
		}
		return cacheManager;
	}

	/**
	 * Handle navigation requests (e.g., link clicks)
	 */
	public void handleNavigationRequest(BrowserFieldRequest request)
            throws Exception {
		InputConnection ic = handleResourceRequest(request);
		browserField.displayContent(ic, request.getURL());
	}

	/**
	 * Handle resource request (e.g., images, external
         * css/javascript resources)
	 */
	public InputConnection handleResourceRequest(BrowserFieldRequest request)
              throws Exception {

	   // if requested resource is cacheable
           // (e.g., an "http" resource), use the cache
	   if (getCacheManager() != null &&
               getCacheManager().isRequestCacheable(request)) {
               InputConnection ic = null;
               // if requested resource is cached, retrieve it from cache
               if (getCacheManager().hasCache(request.getURL()) &&
                   !getCacheManager().hasCacheExpired(request.getURL())) {
                   ic = getCacheManager().getCache(request.getURL());
               }
               // if requested resource is not cached yet, cache it
               else {
            	  ic = super.handleResourceRequest(request);
                  if (ic instanceof HttpConnection) {
                     HttpConnection response = (HttpConnection) ic;
                     if (getCacheManager().isResponseCacheable(response)) {
                        ic = getCacheManager().createCache(request.getURL(),
                                                            response);
                     }
                  }
               }
               return ic;
	   }
	   // if requested resource is not cacheable make a standard request
	   return super.handleResourceRequest(request);
	}

}

 

Note that the algorithm implemented in method handleResourceRequest() relies heavily on the CacheManager interface. Developers reading this article might want to create their own implementation of the that interface (or extend the class CacheManagerImpl) to customize the cache functionality discussed in this article. The reader is encouraged to have a careful look at the source code provided especially class CacheManagerImpl that provides a basic caching implementation used by the CacheProtocolController.

 

It is out of the scope of this article to discuss the implementatoin details of class CacheManagerImpl. Yet understanding this class by looking into the source code should be pretty straightforward.

 

Attaching the new CacheProtocolController to the Sample Application

 

The last step towards enabling caching on your BF2 application is to attached the new CacheProtocolController component to the BrowserField object. In the sample application provided (see class BF2CacheSampleApp in the attachments) the new controller is attached to the BrowserField as shown in the code  below:

 

browserField = new BrowserField();
browserField.getConfig().setProperty(BrowserFieldConfig.CONTROLLER,
                                     new CacheProtocolController(browserField));

 

The reader is strongly encouraged to check the slides of the DEV 49 session entitled “Customizing BrowserField2 Advanced Components” presented at the DEVCON 2010.The slides cover several other extensible points of the BrowserField2 API and can be found in the BlackBerry Developer Zone portal.

 

 

Have fun with your BrowserField2 Web Cache!

 

BF2CacheSampleApp-download-pdf-renameto.zip

 

[1] http://supportforums.blackberry.com/t5/Java-Development/How-to-Implement-a-Web-Cache-for-Your-BrowserField2-Application/ta-p/817911


Invoke a Permission Requests

The ApplicationPermissionsManager API offers a way to streamline the request for application permissions to improve the user experience. The API allows an application to request all required permissions at one time and tell the user why the permissions are needed. Applications are also able to determine which permissions they have and if its is possible to get the desired level of permissions.

However, concurrent requests for permissions were not possible until BlackBerry® Device Software 5.0.0.796, Bundle 1342. If the application permissions screen was open when another application (or another entry point of the same application) requested permissions, the request would fail with an exception in some cases or would simply fail silently with no request shown to the user. The exception seen was an IllegalArgumentException, with the message “object already exists”. This is due to the single allowed permissions screen before the limitation was fixed.

The attached sample code shows how to make permission requests in the background which account for these situations more gracefully.

  • Since only one permissions request can be handled at a time, the sample code foregrounds a hidden permissions screen in case the user had dismissed it or another application had taken the foreground.
  • After foregrounding any prior screens, the applications own request is queued up using the ApplicationPermissionsManager API.
  • If it fails with the IllegalArgumentException “object already exists”, then the request is re-queued when the application is foregrounded again, since the user must handle the existing permission request first.
  • The sample also handles instances where the user has put the permissions request into the background but tries to run the application again, and it has been altered to not show any the main UI until the permissions have been accepted. This is not always the best choice of user experience, but may be desired by some applications.
import net.rim.device.api.applicationcontrol.ApplicationPermissions;
import net.rim.device.api.applicationcontrol.ApplicationPermissionsManager;
import net.rim.device.api.system.ApplicationDescriptor;
import net.rim.device.api.system.ApplicationManager;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.EventLogger;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.Ui;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.UiEngine;
import net.rim.device.api.ui.component.BasicEditField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.DialogClosedListener;
import net.rim.device.api.ui.container.MainScreen;

public class BackgroundPermissions extends UiApplication {

	private long UID = 0x85d1d1d3e756befdL;

	private HarnessScreen screen;

	public BackgroundPermissions(boolean gui) {
		EventLogger.register(UID, "BackgroundPermissions", EventLogger.VIEWER_STRING);
		if (gui) {
			screen = new HarnessScreen();
			screen.checkPermissions();
		} else {
			while (ApplicationManager.getApplicationManager().inStartup()) {
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			new BackgroundPermissionsCheck().start();
		}
	}

	public void log(String message) {
		if (message != null) {
			System.out.println(message);
			EventLogger.logEvent(UID, message.getBytes(), EventLogger.ALWAYS_LOG);
		}
	}

	private class BackgroundPermissionsCheck extends Thread {
		public void run() {
			String message = "Requesting permissions";
			System.out.println(message);
			EventLogger.logEvent(UID, message.getBytes(), EventLogger.ALWAYS_LOG);

			ApplicationPermissions perms = ApplicationPermissionsManager.getInstance().getApplicationPermissions();
			perms.addPermission(ApplicationPermissions.PERMISSION_RECORDING);
			boolean result;
			synchronized (UiApplication.getEventLock()) {
				result = ApplicationPermissionsManager.getInstance().invokePermissionsRequest(perms);
			}
			if (result) {
				message = "Accepted Permissions ... returned true to Listener";
			} else {
				message = "Did not accept Permissions .. returned false to Listener";
			}
			System.out.println(message);
			EventLogger.logEvent(UID, message.getBytes(), EventLogger.ALWAYS_LOG);
			System.exit(0);
		}
	}

	public void activate() {
		log("Activate");
		if (screen != null) {
			log("Screen exists");
			if (screen.isCheckingPermissions()) {
				log("Screen is waiting on permissions");
				if (screen.isPermissionsScreenInBackground() >= 0) {
					screen.foregroundPermissionsScreen();
				} else {
					screen.checkPermissions();
				}
			} else if (screen.isQueueAfterException()) {
				screen.checkPermissions();
			}
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		BackgroundPermissions app;
		if (args != null && args.length > 0 && args[0].equals("gui")) {
			app = new BackgroundPermissions(true);
		} else {
			app = new BackgroundPermissions(false);
		}
		app.enterEventDispatcher();
	}

	private class HarnessScreen extends MainScreen {

		private BasicEditField log = new BasicEditField("Log: ", "");

		private boolean checkingPermissions = false;
		private boolean queueAfterException = false;

		public HarnessScreen() {
			setTitle("Sync Listener");
			add(log);
		}

		public synchronized void checkPermissions() {
			new PermissionsCheck().start();
		}

		public synchronized boolean isCheckingPermissions() {
			return checkingPermissions;
		}

		public synchronized boolean isQueueAfterException() {
			return queueAfterException;
		}

		public void foregroundPermissionsScreen() {
			int processId = isPermissionsScreenInBackground();
			if (processId >= 0) {
				foregroundPermissionsScreen(processId);
			}
		}

		private void foregroundPermissionsScreen(int processId) {
			ApplicationManager.getApplicationManager().requestForeground(processId);
		}

		/**
		 * Check for the permissions screen hidden in the background
		 *
		 * @return process Id of the screen, or -1 if not running
		 */
		private int isPermissionsScreenInBackground() {
			ApplicationDescriptor[] apps = ApplicationManager.getApplicationManager().getVisibleApplications();
			for (int i = 0; i < apps.length; i++) {
				if (apps[i].getModuleName() != null && apps[i].getModuleName().equals("net_rim_bb_application_permissions_proxy")) {
					int processId = ApplicationManager.getApplicationManager().getProcessId(apps[i]);
					log("Permission screen found at " + processId);
					return processId;
				}
			}
			return -1;
		}

		private class PermissionsCheck extends Thread {

			public void run() {
				if (!hasPermissions()) {
					log("Permissions not valid");
					requestPermissions();
				} else {
					log("Permissions Valid");
					synchronized (UiApplication.getEventLock()) {
						pushScreen(screen);
					}

				}
			}

			public boolean hasPermissions() {
				ApplicationPermissions perms = ApplicationPermissionsManager.getInstance().getApplicationPermissions();
				return checkPermission(perms, ApplicationPermissions.PERMISSION_RECORDING, "Recording");
			}

			public boolean checkPermission(ApplicationPermissions perms, int permission, String name) {
				int setting = perms.getPermission(permission);
				log("Checking " + name + " Permission: " + setting);
				if (setting != ApplicationPermissions.VALUE_ALLOW) {
					return false;
				}
				return true;
			}

			public ApplicationPermissions getDesiredPermissions() {
				ApplicationPermissions perms = ApplicationPermissionsManager.getInstance().getApplicationPermissions();
				perms.addPermission(ApplicationPermissions.PERMISSION_RECORDING);
				return perms;
			}

			public void requestPermissions() {
				log("Foregrounding any existing request");
				foregroundPermissionsScreen();
				queueAfterException = false;
				checkingPermissions = true;
				try {
					log("Enter invokePermissionsRequest : result must be True, False or Exception. ");
					boolean result = ApplicationPermissionsManager.getInstance().invokePermissionsRequest(getDesiredPermissions());
					if (result) {
						log("result: true - User accepted request");
						synchronized (UiApplication.getEventLock()) {
							pushScreen(screen);
						}
					} else {
						log("result: false - User did not accept request");
					}
				} catch (Throwable t) {
					log("result - exception : " + t.toString());
					if (t instanceof IllegalArgumentException) {
						// Queue up request again.
						log("Queueing");
						queueAfterException = true;
					}
				} finally {
					checkingPermissions = false;
					if (!isQueueAfterException()) {
						log("Enter ShowErrorAlertandCloseGui()");
						ShowErrorAlertandCloseGui();
					}
				}

			}

			private void ShowErrorAlertandCloseGui() {
				Dialog dialog = new Dialog(Dialog.D_OK, "-- Error Message -- ", Dialog.YES, Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION),
						Manager.VERTICAL_SCROLL);
				dialog.setEscapeEnabled(false);
				dialog.setDialogClosedListener(new DialogClosedListener() {
					public void dialogClosed(Dialog dialog, int i) {
						if (i == Dialog.OK) {
							log("ShowErrorAlertandCloseGui ********* System.exit(0) ****** ");
							System.exit(0);
						}
					}
				});
				try {
					log("To push global screen,  synchronized(Application.getEventLock())");
					synchronized (UiApplication.getEventLock()) {
						log("ShowErrorAlertandCloseGui - Enter pushGlobalScreen() ");
						Ui.getUiEngine().pushGlobalScreen(dialog, 1, UiEngine.GLOBAL_QUEUE);
						log("ShowErrorAlertandCloseGui - Exit pushGlobalScreen() ");
					}
				} catch (Exception e) {
					log("Exception - ErrorHandling.askGlobalDialogOK: " + e.toString());
				}
			}

		}

	}

}

[1] http://supportforums.blackberry.com/t5/Java-Development/How-to-Invoke-a-Permissions-request-with-other-applications-also/ta-p/652397

[2] http://supportforums.blackberry.com/t5/Java-Development/What-is-Best-practices-in-working-with-ApplicationPermissions/ta-p/624740


  • Copyright © 1996-2010 vaks.in. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress