2011-11-30 67 views
2

我的应用程序出现严重问题。我在广播接收器中使用许可android.permission.ACCESS_COARSE_LOCATION,并且它完美运行。使用权限后的SecurityException

然而经过一定量的时间(这似乎是随机的)应用程序崩溃与下面的输出:

抛出:SecurityException既不用户10086也不当前进程有权限android.permission.ACCESS_COARSE_LOCATION

我已经使用<uses-permission etc />在清单中包含了许可,并且为了使其更具体,当我sendOrderedBroadcast我也广播了该许可,并且已经向广播接收器授予许可,以便它能够接收广播是的。

但是就像我后说,而抛出:SecurityException在代码的第二行抛出:

TelephonyManager Tel = (TelephonyManager) vb.getPsrC() 
      .getSystemService(Activity.TELEPHONY_SERVICE); 
GsmCellLocation cellLocation = (GsmCellLocation) Tel.getCellLocation(); 

这个崩溃似乎运行Froyo的测试设备上只发生。

在运行姜饼的设备上,应用程序只使用更少的内存重新启动服务,并且什么也不做。这些问题是相关的还是安全性异常与应用程序崩溃相互排斥。

回答

1

好的,原来是罪魁祸首是内存泄漏。当GREF到达2001年时,它崩溃并基本清空它(因为没有更好的词组)导致应用程序认为未获得许可。我修好了将phonelistener移动到服务中。

+0

请确定并将您的答案标记为已接受,以便其他人知道有解决方案 –

+0

谢谢,我忘记了哈哈。 – SeanSWatkins

+0

“GREF到达2001崩溃”是什么意思,我面临类似的问题,请帮助 –