2011-11-30 58 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崩潰」是什麼意思,我面臨類似的問題,請幫助 –

相關問題