Friday Mar 12

Archive for September, 2009

Sep
30/09
BlackBerry Leather Holster for 8300, 8310, 8320, and 8330 Curve
Last Updated on Wednesday, 30 September 2009 08:52
Written by MobLove
Wednesday, September 30th, 2009

  • Built-in grooves constructed of hard plastic run along the front and back insides of the case to protect the trackball
  • Multi-rotational RIM Swivel Clip
  • Magnetized proximity-sensing technology
  • Durable leather exterior
  • Compatible with Blackberry CURVE 8300, 8310 & 8320 Devices

Product Description
No matter how much you love your new BlackBerry smartphone, sooner or later you’re going to have to put it away. And there’s no safer, more convenient or better-looking place to put it than inside a Leather Swivel Holster, in your choice of color. The Leather Swivel Holsters are outfitted with a swivel clip to adjust the holster for maximum wearing comfort. For some smartphones, they also include special indentations that snuggly protect your smartphone’s trackball…. More >>

BlackBerry Leather Holster for 8300, 8310, 8320, and 8330 Curve

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • NewsVine
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Technorati
  • Live
  • LinkedIn
  • MySpace
  • FriendFeed
  • HelloTxt
  • MisterWong
  • Mixx
  • Ping.fm
  • Propeller
Tags: , , , , , , ,   |  Posted under Blackberry  |  Comments  5 Comments
Sep
30/09
Latest Android Auctions
Last Updated on Wednesday, 30 September 2009 06:26
Written by MobLove
Wednesday, September 30th, 2009

Hey, check out these auctions:

Fr T-MOBILE HTC G1 GOOGLE ANDROID CLEAR HARD COVER CASE
US $4.95 (0 Bid)
End Date: Thursday Mar-11-2010 18:47:42 PST
Buy It Now for only: US $5.99
Bid now | Buy it now | Add to watch list
Skin Cover Slip Case for HTC G1 Android phone - 3 Sets
US $9.75 (0 Bid)
End Date: Thursday Mar-11-2010 18:48:26 PST
Bid now | Add to watch list

Cool, arent they?

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • NewsVine
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Technorati
  • Live
  • LinkedIn
  • MySpace
  • FriendFeed
  • HelloTxt
  • MisterWong
  • Mixx
  • Ping.fm
  • Propeller
Tags: , ,   |  Posted under Android  |  Comments  No Comments
Sep
30/09
Nokia N97 mini demo
Last Updated on Wednesday, 30 September 2009 03:57
Written by MobLove
Wednesday, September 30th, 2009


Introducing Nokia N97 mini. Get to know the Nokia N97 mini and Ovi services. Learn more about the personalizable home screen, Ovi Store, Ovi Maps, Music Store. Find out more about the Nokia N97 mini at nokia.com

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • NewsVine
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Technorati
  • Live
  • LinkedIn
  • MySpace
  • FriendFeed
  • HelloTxt
  • MisterWong
  • Mixx
  • Ping.fm
  • Propeller
Tags: , ,   |  Posted under Nokia  |  Comments  20 Comments
Sep
30/09
LG Voyager VX10000 Phone, Black
Last Updated on Wednesday, 30 September 2009 05:50
Written by MobLove
Wednesday, September 30th, 2009

  • External touchscreen navigation and input, opens to reveal full QWERTY keyboard and second screen
  • Access Verizon’s V Cast Music and Video services via fast EV-DO data network; GPS-enabled for turn-by-turn directions
  • 2-megapixel camera with video capture; MicroSD expansion; Bluetooth connectivity with music streaming
  • Up to 4 hours of talk time, up to 480 hours (20 days) of standby time
  • Includes: Standard Li-Ion Battery, AC Travel Charger, USB Cable and User’s Guide

Amazon.com Product Description
Combining an interactive touchscreen for easy navigation and a full QWERTY keyboard for fast communication, the groundbreaking LG Voyager offers a powerful mobile communication and entertainment platform. It features dual screens, with the exterior touchscreen offering VibeTouch technology for tactile feedback and a touch protection feature that prevents unwanted key actions. The Voyager gives you access to V CAST Video–Verizon Wireless’ multimedia servi… More >>

LG Voyager VX10000 Phone, Black

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • NewsVine
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Technorati
  • Live
  • LinkedIn
  • MySpace
  • FriendFeed
  • HelloTxt
  • MisterWong
  • Mixx
  • Ping.fm
  • Propeller
Tags: , , ,   |  Posted under IPhone  |  Comments  5 Comments
Sep
29/09
Development and remote installation of Java service for the Android Devices
Last Updated on Tuesday, 29 September 2009 11:33
Written by MobLove
Tuesday, September 29th, 2009

Written by: Igor Darkov, Software Developer of Device Team, Apriorit Inc.

In this article I’ve described:

Services are long running background processes provided by Android. They could be used for background tasks execution. Tasks can be different: background calculations, backup procedures, internet communications, etc. Services can be started on the system requests and they can communicate with other processes using the Android IPC channels technology. The Android system can control the service lifecycle depending on the client requests, memory and CPU usage. Note that the service has lower priority than any process which is visible for the user.

Let’s develop the simple example service. It will show scheduled and requested notifications to user. Service should be managed using the service request, communicated from the simple Android Activity and from the PC.

First we need to install and prepare environment:

After the environment is prepared we can create Eclipse Android project. It will include sources, resources, generated files and the Android manifest.

First of all we need to implement service class. It should be inherited from the android.app.Service (http://developer.android.com/reference/android/app/Service.html) base class. Each service class must have the corresponding declaration in its package’s manifest. Manifest declaration will be described later. Services, like the other application objects, run in the main thread of their hosting process. If you need to do some intensive work, you should do it in another thread.

In the service class we should implement abstract method onBind. Also we override some other methods:

To send system log output we can use static methods of the android.util.Log class (http://developer.android.com/reference/android/util/Log.html). To browse system logs on PC you can use ADB utility command: adb logcat.

The notification feature is implemented in our service as the special runnable object. It could be used from the other threads and processes. The service class has method showNotification, which can display message to user using the Toast.makeText call. The runnable object also uses it:

Code will be executed in the service thread. To execute runnable method we can use the special object android.os.Handler. There are two main uses for the Handler: to schedule messages and runnables to be executed as some point in the future; and to place an action to be performed on a different thread than your own. Each Handler instance is associated with a single thread and that thread’s message queue. To show notification we should set message and call post() method of the Handler’s object.

Each application runs in its own process. Sometimes you need to pass objects between processes and call some service methods. These operations can be performed using IPC. On the Android platform, one process can not normally access the memory of another process. So they have to decompose their objects into primitives that can be understood by the operating system , and “marshall” the object across that boundary for developer.

The AIDL IPC mechanism is used in Android devices. It is interface-based, similar to COM or Corba, but is lighter . It uses a proxy class to pass values between the client and the implementation.

AIDL (Android Interface Definition Language) is an IDL language used to generate code that enables two processes on an Android-powered device to communicate using IPC. If you have the code in one process (for example, in Activity) that needs to call methods of the object in another process (for example, Service), you can use AIDL to generate code to marshall the parameters.

Service interface example showed below supports only one sendNotification call:

The IBinder interface for a remotable object is used by clients to perform IPC. Client can communicate with the service by calling Context’s bindService(). The IBinder implementation could be retrieved from the onBind method. The INotifyService interface implementation is based on the android.os.Binder class (http://developer.android.com/reference/android/os/Binder.html):

As it was described above, the notifications could be send using the Handler object’s post() method call. The NotificaionRunnable object is passed as the method’s parameter.

On the client side we can request IBinder object and work with it as with the INotifyService interface.  To connect to the service the android.content.ServiceConnection interface implementation can be used. Two methods should be defined: onServiceConnected, onServiceDisconnected:

The bindService method can be called from the client Activity context to connect to the service:

The unbindService method can be called from the client Activity context to disconnect from the service:

Broadcasts are the way applications and system components can communicate. Also we can use broadcasts to control service from the PC. The messages are sent as Intents, and the system handles dispatching them, including starting receivers.

Intents can be broadcasted to BroadcastReceivers, allowing messaging between applications. By registering a BroadcastReceiver in application’s AndroidManifest.xml (using tag) you can have your application’s receiver class started and called whenever someone sends you a broadcast. Activity Manager uses the IntentFilters, applications register to figure out which program should be used for a given broadcast.

Let’s develop the receiver that will start and stop notify service on request. The base class android.content.BroadcastReceiver should be used for these purposes (http://developer.android.com/reference/android/content/BroadcastReceiver.html):

To send broadcast from the client application we use the Context.sendBroadcast call. I will describe how to use receiver and send broadcasts from the PC in chapter 2.

Every application must have an AndroidManifest.xml file in its root directory. The manifest contains essential information about the application to the Android system, the system must have this information before it can run any of the application’s code. The core components of an application (its activities, services, and broadcast receivers) are activated by intents. An intent is a bundle of information (an Intent object) describing a desired action — including the data to be acted upon, the category of component that should perform the action, and other pertinent instructions. Android locates an appropriate component to respond to the intent, starts the new instance of the component if one is needed, and passes it to the Intent object.

We should describe 2 components for our service:

Services like the other applications for the Android platform can be installed from the special package with the .apk extension. Android package contains all required binary files and the manifest.

Before installing the service from the PC we should enable the USB Debugging option in the device Settings-Applications-Development menu and then connect device to PC via the USB.

On the PC side we will use the ADB utility which is available in the Android SDK tools directory. The ADB utility supports several optional command-line arguments that provide powerful features, such as copying files to and from the device. The shell command-line argument lets you connect to the phone itself and issue rudimentary shell commands.

We will use several commands:

I’ll describe the package installation process in details. It consists of several steps which are performed by the ADB utility install command:

To be able to start and stop the NotifyService from the PC we can use the “am” (Activity Manager?) utility which is present on the Android device. The command line parameters are described in the Appendix II. The “am” utility can send system broadcast intents. Our service has the broadcast receiver which will be launched by the system request.

To start NotifyService we can execute remote shell command:

To stop the NotifyService we can execute remote shell command:

Note, that the NotifyServiceStart and NotifyServiceStop intents were described in the manifest file inside the tag. Other requests will not start the receiver.

http://developer.android.com/sdk/1.5_r2/installing.html

http://developer.android.com/reference/classes.html

https://www.isecpartners.com/files/iSEC_Securing_Android_Apps.pdf

http://developer.android.com/guide/developing/tools/aidl.html

Apriorit is an Ukrainian software development company.

Apriorit develops its own products as well as provide offshore development and QA services in the areas of advanced system programming, driver development, software for devices.

One of the key values of Apriorit’s specialists is knowledge generation and sharing of experience.

Learn more about Apriorit and its experience at Apriorit Official site

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • NewsVine
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Technorati
  • Live
  • LinkedIn
  • MySpace
  • FriendFeed
  • HelloTxt
  • MisterWong
  • Mixx
  • Ping.fm
  • Propeller
Tags: , , , , , ,   |  Posted under Android  |  Comments  No Comments