Select Language
Go To....
- BlackBerry Support Community Forums
- Welcome & Introductions
- Announcements
- Your Stories
- Smartphones
- BlackBerry® Bold™ 9700 smartphone
- BlackBerry® Tour™ 9630
- BlackBerry Storm - BlackBerry 9500 Series Smartphone
- BlackBerry Bold - BlackBerry 9000 Series Smartphone -
- BlackBerry Curve - BlackBerry 8900 Series Smartphone
- BlackBerry 8800 Series Smartphone
- BlackBerry Curve 8500 Series Smartphone
- BlackBerry Curve - BlackBerry 8300 Series Smartphone
- BlackBerry Pearl - BlackBerry 8100 and 8200 Series Smartphone
- Other BlackBerry Smartphones and Devices
- General BlackBerry Smartphone Functions and Features
- BlackBerry Accessories
- Software
- BlackBerry® Desktop Software
- BlackBerry® for Mac
- BlackBerry® Device Software
- BlackBerry® Applications, Third-Party Applications & BlackBerry App World
- BlackBerry App World - General Discussions
- Downloaded Applications for BlackBerry Devices
- Solutions
- BlackBerry® Enterprise Server Version 5.0
- BlackBerry® Enterprise Solution
- BlackBerry® Internet Service
- BlackBerry® Professional Software
- BlackBerry® Training and Certification
- BlackBerry® Training and Certification
- BlackBerry Development
- Dev Blog
- BlackBerry App World™ Development
- Java Development
- Web Development
- MDS Runtime Development
- BlackBerry Enterprise Server Development
- Product Management: The BlackBerry Application Platform
- BlackBerry Themes & Animated Graphics
- BlackBerry Push Development
- Testing and Deployment
- Community Forums Feedback
- Forum Feedback and Ideas
- BlackBerry Community Post
- BlackBerry Community Post
- Register
- ·
- Sign In
- ·
- Help
- ·
- New Topics
- ·
- New Posts
- BlackBerry Support Community Forums
- :
- BlackBerry Development
- :
- Dev Blog
- :
- Explaining BlackBerry Security for Developers: App...
Article Options
- Subscribe to RSS Feed
- Bookmark
- Subscribe
- Email to a Friend
- Printer Friendly Page
- Report Inappropriate Content
Explaining BlackBerry Security for Developers : Applicatio n Control
In part one of our three-part series on BlackBerry® security, we discussed the nuances of enterprise IT policy. Today, we'll discuss application control.
In contrast to IT policy, which IT administrators use to manage and control employee use of BlackBerry smartphones, application control refers to a security setting that can be managed by the end-user and/or the IT administrator (if the user is connected to a BlackBerry Enterprise Server) that defines application behavior on BlackBerry® smartphones. Specifically, application control allows IT administrators to define whether or not applications can make network connections, play media, access the BlackBerry® Calendar… etc.
These settings are configurable by either the end user or the BlackBerry Enterprise Server admin. It’s important to note this subtle difference: because application control can be configured by the user, the BlackBerry smartphone does not need to be connected to a BlackBerry Enterprise Server to use them (whereas for IT policy to be applied the BlackBerry smartphone has to be connected to a BlackBerry Enterprise Server).
BlackBerry smartphone users with experience installing applications are likely familiar with application control. In BlackBerry® Device Software 4.6 (first introduced with the BlackBerry® Bold™ smartphone) and above, users encounter application control as soon as the installed application is first executed:
"Would you like to grant [Application Name] Trusted Application status?"
If the user selects "Yes", then your application will be given all the permissions commonly needed for normal execution, i.e. all permissions will be set to “Allow” with the exception of:
- Prompt - Recording, Security Timer Reset
- Deny - Input Simulation, Browser Filtering, Display Information While Locked
Alternatively, if the user selects "No", it's not the end of the world; it just means that your application will be given the default set of permissions. For BlackBerry smartphones that are connected to a BlackBerry Enterprise Server, all permissions are set to “Allow” with the exception of:
- Prompt - Recording, Phone, Location Data, Server Network, Internet
- Deny - Browser Filtering, Input Simulation, Security Timer Reset, Display Information While Locked
For smartphones that are not connected to a BlackBerry Enterprise Server, all permissions are set to “Allow” with the exception of:
- Prompt - Recording, Phone, Location Data
- Deny - Browser Filtering, Input Simulation, Security Timer Reset, Display Information While Locked
Regardless of what the user selects, on first run of your application, it's a good idea to check what permissions are assigned to your application, using ApplicationPermissionsManager.getApplicationPermis sions(). All application permissions have a setting of “Allow” and “Deny”, and some have a tertiary setting: “Prompt”. If a permission is set to “Prompt”, the user will receive a dialog like the one below when you use an API that triggers it:
"The application [Application Name] has requested a http connection to [domain X]"
At this point, the user is given the choice to “Allow” or “Deny” the request. If they select “Allow” (and check the box to not be asked again), the value of the permission will be changed from “Prompt” to “Allow” and your API call will succeed. However, if the user selects “Deny”, then your application will receive either a ControlledAccessException or a SecurityException, depending on the method definition.
It is probably best to avoid these prompts in the first place. Since there's no magic formula that will allow you to eliminate all these prompts, your best bet is to group them into a single request, using ApplicationPermissionsManager.invokePermissionRequ est (ApplicationPermissions requestedPermissions) for the permission values your application will require. Calling this method will first present the user with a dialog indicating to the user that your application is attempting to change permissions, and then display a screen with all requested permissions, which requires the user to save the settings presented to them. Since developers don't have the ability to control the user interface for either of these screens, it's recommended that you inform the user what your application is about to do before blindly launching into the permission request.
Lastly, if despite all your best efforts, the user still hasn't granted you permission access beyond “Prompt”, you do have the ability to provide more information to the user explaining your reasoning for leveraging a certain function. To explain, let's return to the http message we got:
"Would you like to grant [Application Name] Trusted Application status?"
Using the ReasonProvider API, you can attach your own message to this dialog prompt, contained within a link for "Details...". If the user clicks this link, your message will be displayed to the user, allowing you to explain why your application needs this permission:
"My application needs to open a network connection so that it can download pictures from your favorite website."
This approach eases the minds of your users by providing them all the information they need to make confident decisions about your application.
For more information on the various application control settings that can be applied to your application, see the Javadoc for the ApplicationPermissions class, which defines constants for each permission.
In part three of this series, we'll address the topic of code signing. Stay tuned!
Message Edited by bzubert on 09-28-2009 05:39 PM
About BlackBerry Developer's Blog
About the Author
-
Adam is a product manager at RIM in the platform product management team. Adam’s focus and responsibi
lity is on setting the strategy and direction of the BlackBerry web platform, including the web developer tooling products. He is also responsibl e for RIM’s involvemen t with the Eclipse Foundation and the Pulsar project. Adam hopes this blog will allow him to share his knowledge, viewpoint and passion for BlackBerry , but is really interested in what capabiliti es the community feels should be added to the web platform and tooling to create even more compelling web applicatio ns and content. -
Application Development Consultant
-
Adam is an Applicatio
n Developmen t Consultant with the Developer Relations Team at RIM. As a member of the Developer Relations Team, Adam manages the technical relationsh ip with ISVs who specialize in producing applicatio ns based on web technologi es. Adam's developmen t background consists of a degree in Computer Science and work in web developmen t for both the insurance and technical support industries . -
I joined Research In Motion in 2005 working with Independen
t Software Vendors (ISVs) who specialize in Bluetooth, GPS, multimedia , and gaming. As a senior member of the Developer Relations Team it's my mandate to not only support the applicatio n developmen t efforts for a number of ISVs, but it's also to act as a voice at RIM for third party applicatio n developers . Like RIM, my roots are in the enterprise world, but over the past couple of years I've quickly adapted to the consumer space, and that's where I spend most of my time today. -
Chris has been at RIM since 2001 and runs R&D for the BlackBerry Developmen
t Platform. Practicall y speaking, this means day-to-day he is busy harnassing the innovative power of a talented group of RIM engineers to serve the needs of the BlackBerry Developer community. -
Denver is a software developer at RIM, working on the BlackBerry Java APIs. Denver has been working at RIM for 4 years and started in automated testing of the APIs, making the switch to developmen
t in 2008. He enjoys programmin g, and finds developing for BlackBerry especially interestin g. Denver also enjoys writing and sharing his developmen t experience s, and hopes his posts will be useful and informativ e to other developers out there. -
Word Czar
-
With more than a half-decad
e of experience in the wireless industry, Douglas “tr0n” Soltys has chronicled the evolution of mobile culture in both the consumer and enterprise space. Prior to joining RIM, Douglas manned the helm of wireless weblogs QuicklyBor ed and BlackBerry Cool. When not blogging about all things BlackBerry ®, Douglas can be found extolling the virtues of Strunk and White. He uses a BlackBerry ® Bold™. -
As Manager, Developer Programs at Research In Motion (RIM), Ian and his team are responsibl
e for the design and delivery of programs and services for BlackBerry developers – including support tools and resources, recognitio n, advocacy, go-to-mark et, and regional programs. Ian is passionate about making sure that BlackBerry developers have everything they need in order to be successful from the inception of an idea to app deployment or commercial ization. Prior to joining Developer Relations, Ian was a Product Manager for various BlackBerry solutions including the BlackBerry Java Developmen t Environmen t, BlackBerry Maps, and BlackBerry Mobile Voice System. -
Kamen is a Senior Architect, Strategic Initiative
s, and started at RIM in 2001 with already establishe d expertise in developmen t for the BlackBerry platform and other mobile devices. Since then Kamen has been part of both device and server-sid e design and developmen t activities - helping to evolve the BlackBerry developmen t environmen t. As part of the Strategic Initiative s group he is now involved in looking for new ways to bring additional value to third party developers . -
Mike Kirkup is the Director for the Developer Relations program at Research In Motion (RIM), which is responsibl
e for managing the technical relationsh ips and programs for RIM’s developer community worldwide. Mike and his team work with RIM’s developer community to provide support and guidance as developers work to integrate their applicatio ns to the BlackBerry platform. Mike joined RIM in 2001 as a Security Software Developer in RIM’s Wireless Security Group. As part of the Wireless Securty group, Mike contribute d to the developmen t of the BlackBerry Cryptograp hy API, S/MIME and PGP implementa tions. Mike holds a Masters of Management Science and a Bachelor of Mathematic s from the University of Waterloo. -
When he’s not out riding the waves off the sunny eastern coast of Australia, you’re likely to find Neil at his desk answering emails, taking calls, or cutting code in his role of Applicatio
n Developer Consultant for RIM. As a member of the Developer Relations team Neil spends a great deal of time working with Independen t Software Vendors (ISVs) in Australia and New Zealand helping them get the most out of the BlackBerry platform, and also working behind the scenes to ensure everything is “most excellent” for all developers . Neil’s been developing for the BlackBerry for five years and prior to joining RIM ran a successful BlackBerry software company. He also likes hats. -
Prosanta is a member of the BlackBerry Developer Relations team specializi
ng in Web Developmen t. Prosanta’s focus is on developing out the web platform and tools associated with web developmen t while supporting the developmen t efforts of a number of Independen t Software Vendors. Prior to joining RIM, Prosanta had worked on numerous web portals for major multinatio nal firms writing both front and backend code. -
Tim is the Developmen
t Manager for BlackBerry developmen t tooling. This includes Java, Web and also Theme creation tools. He is always hanging out in the developmen t forums trying to help out where he can and to bring your feedback into the next releases of BlackBerry tooling. You’ll also see Tim presenting various topics at the BlackBerry Developer Conference and Wireless Enterprise Symposium so be sure to stop by and say hi. Just don’t start talking about cars or Batman or you won’t be able to get rid of him. -
Application Development Consultant
-
I work on the Developer Relations team at RIM, with a focus on enterprise applicatio
ns for Sales Force Automation , Health Care, Public Safety and Real Estate. I started on the team at the beginning of 2007.
Latest Articles
- BlackBerry Developer Days in South America
-
BlackBerry Applicatio
n User Interface Design Webin... -
Mike Lazaridis to keynote at Mobile World Congress..
. -
How To Find That Memory Leak (Part Two): Detecting.
.. - BlackBerry Developer Resource Fridays: Week of Jan...
- File Access In a BlackBerry Widget
- BlackBerry Theme Studio Webinar Follow-Up
- New Image Viewing Classes in JDE 5.0
- CES 2010: Loopt Developer Interview
- BlackBerry Developer Resource Fridays: Week of Jan...
Latest Comments
-
Xandrex
on:
BlackBerry Application User Interface Design Webin... -
Mike Kirkup (mkirkup) on: BlackBerry Developer Resource Fridays: Week of Jan...
-
Tim Neil (tneil) on: File Access In a BlackBerry Widget
- cartman on: BlackBerry Theme Studio Webinar Follow-Up
- mazingo(anon) on: CES 2010: Loopt Developer Interview
- dchittum on: BlackBerry Theme Studio Webinar January 12th
-
Mike Kirkup (mkirkup) on: BlackBerry Developer’
s Blog End of Year Wrap-Up -
rcmaniac25
on:
Explaining BlackBerry Security for Developers
: Cod... - Bruce Gao(anon) on: BlackBerry Plug-in for Eclipse now available world...
- Derek Konigsberg(anon) on: BlackBerry Developer Resource Fridays: Week of Dec...
Categories
- community (6)
- Dev Con (23)
- developer blog (4)
- editorials (2)
- how-to (15)
- news (22)
- Tips and Tricks (19)
Shortcut Navigation
Copyright © 2009 Research In Motion Limited, unless otherwise noted.

