01-20-2010 11:33 AM
First I want to say thanks for all of the help I have received here on the couple of questions I have posted. I am having a blast with BB development and it is really helping my company leverage a large investment.
We have pushed the our first app to select individuals before pushing to the whole crew, but after receiving the app, the Capture It utility which we use a lot has started throwing ControlledAccessException errors. If you try to access it from the menu it does nothing (no error message, but it does not work either), but if you try to launch it(Capture It) from its icon, you see the error.
My app to this point is unsigned because we are waiting for our keys. Is the fact that my app is unsigned causing the problem, or is it possibly a setting on the BES through which we are pushing the app be causing the problem. Up until now our guys had only been using a thrid party application developed for us that is not deployed via BES push but they have all been active on the BES.
I hope I'm asking my question in the right place. Maybe it's a question for a BES admin forum. Any help would be appreciated.
01-20-2010 11:45 AM
usually this exception means that a permission to do something was denied.
to avoid this you can use the applicationpermissionsmanager to check permissions at startup (and request a change if they are not adequate).
you can try to allow the application everything to check this. if a bes setting blocks the permission either change the setting or create an application control policy on the bes.
01-20-2010 12:45 PM
Please clear the Event Log, reproduce the issue, obtain the Event Log using the JavaLoader tool, and post the log here. The log will contain the full details of the ControlledAccessException.
01-20-2010 09:23 PM
Thanks to both simon and klyubin. First off re. simon's reply, when I first ran Capture It, it wanted to change two permissions that I could not change. Recording and Interaction. I could access the dropdown, but my BB would keep it at Deny even when I had set it to Allow. That sounds like some kind of IT Policy setting on the BES.
And for klyubin's response. Here is the event log after clearing and re-running
guid:0x97C9F5F641D25E5F time: Wed Dec 31 17:00:00 1969 severity:0 type:2 appystem data:JVM:INFOp=310c7e0d,a='220.127.116.11',o='18.104.22.168'
guid:0xC1A90F9B4F904C57 time: Wed Jan 20 19:17:33 2010 severity:5 type:2 app:App Perms data:d CaptureIt:25
guid:0x9C3CD62E3320B498 time: Wed Jan 20 19:17:33 2010 severity:1 type:3 app:Java Exception data:
No detail message
guid:0xBEF92E11214401C3 time: Wed Jan 20 19:17:33 2010 severity:0 type:2 app:UI data:GS+Q2 4f6446fcnet.rim.device.internal.ui.component.Trace
guid:0xBEF92E11214401C3 time: Wed Jan 20 19:17:35 2010 severity:0 type:2 app:UI data:GS-D 4f6446fc
guid:0x97C9F5F641D25E5F time: Wed Jan 20 19:17:50 2010 severity:0 type:2 appystem data:JVM:INFOp=310c7e0d,a='22.214.171.124',o='126.96.36.199'
I can see the exception, as I was able to see the details of it the first time I accessed the event log - I didn't know there was one until you mentioned it - thank you and kudos to you for that. Does it confirm that the problem is IT policy from the BES? Could my unsigned app have been the cause? Or is it still as muddy as it looks to this newbie?
01-21-2010 03:36 AM
the DIsplay class is only usable by signed applications.
01-21-2010 05:57 AM
I'm not 100% sure, but the exception could be caused by your application lacking the Recording permission which, I believe, is required for taking screenshots. Try granting the permission using Options -> Advanced Options -> Applications -> find your app -> Permissions.
01-21-2010 09:35 AM
It's not my app that is not working. It is Capture It that has quit working ever since we pushed my app out from the BES. This is the first push from the BES we have done. Is it possible that IT policies that had not applied to our field guys before, even though they are registered on the BES, were pushed to them when my app was pushed, causing Capture It to not have access to screen shots anymore? It is Capture It for which I cannot set permissions for Interaction and Recording to Allow.
Looking at the BES 5.0 IT Policy reference guide last night, I found that this policy
Is Access to the Screen, Microphone, and Video Capturing APIs Allowed
application control policy rule
which, according to the reference guiide is set to 'No' by default. I am waiting for our BES admin to come in now to see if setting it to 'Yes' for my profile will clear things up. It just seems strange to me that if our guys were all already registered on the BES, that it would have taken my app to puish out for these policies to take effect. But I am not a BES admin . That was the opinion of our IT director yesterday which is why he wouldn't let our admin take the time to search for a solution. I will post bakc what I find out, and thank you guys so much for your help. I am really glad I posted the question if only to find out about the event log. I am sure analyzing it will be a great help to me in future projects.
01-21-2010 09:44 AM - edited 01-21-2010 09:45 AM
While you're waiting, check whether the Recording permission is granted to that screen capture app on the device itself. Is the permission granted according to the application permissions dialog that I mentioned in my previous post? Also, check whether you can change the permission using that dialog. The IT Policy can specify the default setting and can also specify whether you can set it to Allow or not...
01-21-2010 09:49 AM
the permission has nothing to do with your app being on the device or not.
it policies are applied to all devices registered on the bes.
most likely it has something to do with the default application control policy. maybe the bes admin decided to implement a default policy and it denied permissions to the screenshot application that was granted beforehand.
you can either edit the default control policy or create an own control policy for the screenshot application (recommended). speak with your bes admin about this.
01-21-2010 09:51 AM
That's what I was saying in my post last night. when Capture It is first run and my app is on the BB, Capture It wants to set its permissions. I tell it ok, and it wants to set 'Interactions' and 'Recording' which are both marked 'Deny'. I can access the drop-downs, but my BB won't hold the 'Allow' setting on either permission. This is for Capture It. My app is not signed, but it does not access anything that requires signing. I am eager to get our keys, so that I can make use of LDAP for identifying our users, rather than having them type in their EmployeeID and name as I have them do now