02-16-2010 04:37 AM
Hi,
We want to have our Blackberry application running on 4.5, 4.6, 4.7 OS.
When our application starts, we are having a check for all the 5 permissions, that our application needs.
If one or more of the permissions are set to 'Deny', we invoke the application permissions page
If user sets the required permissions, we proceed further. If user discards, we display the following alert dialog to user, and exit from the application -
Dialog.alert('You have not set the necessary application permissions. The application is closing').
This works for all the permissions except for the 'Cross Application Communication' permission.
When this permission is set to 'Deny', and we start the application, as expected, we get the Blackberry dialog- '<Appl> is requesting changes to its application control permissions',
followed by the permissions page.
If user discards the changes on this page, ('Cross Application Communication' is still set to 'Deny'), we cannot show the following warning message to user, (before exiting from the App) -
Dialog.alert('You have not set the necessary application permissions. The application is closing').
If this is invoked, we get java.lang.Error.
The Cross Application Communication permission, doesn't allow to diplay a dialog to user.
Is it a limitation with Cross Application Communication permission?
Is there any way to avoid this exception/ any workaround to inform user, so that he should set the necessary permissions?
Please let us know if you have any inputs/ suggestions.
The actual error seen from the Event Logs is as follows. -
a UI - GS+Q2 5fb61e7dnet.rim.device.internal.ui.component.Trace
S Java Exception - Error - 2/16 09:10:36
| No detail message
| net_rim_cldc-6
| Application
| getApplication
| 0x1AD0
| net_rim_cldc-6
| Application
| getEventLock
| 0x1A97
| Voltage_SecureMail_For_BlackBerry
| VSZDMHelper
| alert
| 0x1245
| Voltage_SecureMail_For_BlackBerry
| VSZDMHelper
| <clinit>
| 0x1510
| Voltage_SecureMail_For_BlackBerry
| VSZDMHelper
| main
| 0x10F4
d App Perms - d Voltage_SecureMail_For_BlackBerry:29 - 2/16 09:10:36
d App Perms - d Voltage_SecureMail_For_BlackBerry:25 - 2/16 09:10:36
d App Perms - d Voltage_SecureMail_For_BlackBerry:2 - 2/16 09:10:36
d App Perms - d Voltage_SecureMail_For_BlackBerry:13 - 2/16 09:10:36
d App Perms - d Voltage_SecureMail_For_BlackBerry:12 - 2/16 09:10:36
a UI - GS-D 74b87781 - 2/16 09:10:31
a UI - GS+Q0 74b87781net.rim.device.apps.internal.applicationco
d App Perms - d Voltage_SecureMail_For_BlackBerry:29 - 2/16 09:10:29
d App Perms - d Voltage_SecureMail_For_BlackBerry:25 - 2/16 09:10:29
d App Perms - d Voltage_SecureMail_For_BlackBerry:2 - 2/16 09:10:29
Thanks and Regards,
Shailesh
02-17-2010 01:15 PM
From where are you displaying the Dialog? Can you post a code snippet?
05-26-2010 04:45 PM
It does not look as though displaying a dialog is needed to cause the RIM java language exception error. In OS 4.7 I have the same issue if Cross Application Communications permission is set to Deny.
Here is the log for the same error that i am seeing:
Name: Error
GUID: 9c3cd62e3320b498
Time: May 26, 2010 16:36:35
No detail message
net_rim_cldc-16
ApplicationControlImpl
assertIPCAllowed
0x1D82
net_rim_cldc-15
ApplicationControl
assertIPCAllowed
0x2E1
net_rim_cldc-6
Application
addGlobalEventListener
0x17F5
net_rim_cldc-14
StringProvider$StringProviderLocaleChangeListener
<init>
0xA379
net_rim_cldc-14
StringProvider
<clinit>
0xA28F
net_rim_cldc-11
LabelField
<private>
0xAAD7
net_rim_cldc-11
LabelField
<init>
0xADB5
net_rim_cldc-11
LabelField
<init>
0xAD57
SeamlessWeb-1
KMainScreen$4
<init>
0x501A
SeamlessWeb-1
KMainScreen
addTitle
0x4AC9
SeamlessWeb-1
KMainScreen
addTitle
0x4A49
SeamlessWeb-1
KMainScreen
<init>
0x4A0A
SeamlessWeb-1
KMainScreen
<init>
0x495B
SeamlessWeb-1
LoginLogoutScreen
<init>
0x7264
SeamlessWeb-1
Main
<init>
0x7577
SeamlessWeb-1
Main
main
0x7621
Sent from my Verizon Wireless BlackBerry
12-21-2010 09:24 PM
Hi,
I am facing the same problem. if you found the solution please post here. Thank you.
01-13-2011 04:22 PM
I have found these steps to work:
1) Make sure you remove any static references to PersistentStore, RuntimeStore or any other class that is not your own and might give an error without this permission. For me it was a static reference to a persistent store. None of these classes must be accessed before you request your permissions.
2) At this point a ControlledAccessException should still be thrown when you try and request the permission. However it should show this in the log trace:
| net_rim_cldc-22(4C94D16C)
| ApplicationReasonManagerImpl
| addReasonProvider
| 0x4FEE
So remove any reason providers from your request. and now the permission request should work.