2012-01-27 142 views
1

我有一個關於查找應用程序是否處於發佈模式或調試的問題。 我需要找到一種方法來自動檢測應用程序模式的功能。現在我使用一種簡單的方法來聲明boolean,每次我必須更改true/false。但有時我或其他開發者可能會忘記改變它。其實我需要這個,因爲我在我的應用程序中使用了一個錯誤處理程序,它正在向我們的服務器發送未捕獲的異常。我不想在調試模式下執行此操作。Android調試/發佈版本的應用程序

那麼有沒有什麼辦法可以檢測到我的應用會自動執行的一些功能,而不使用像我這樣的變量?

+0

我不認爲你可以簡單地做到這一點。您可以嘗試從清單中檢索應用程序的'android:debuggable'屬性,但這又不是100%確定的。 – 2012-01-27 14:00:47

+0

另一種方法是從apk中檢索簽名的哈希,並將其與用於簽名應用程序的已知調試/發佈簽名進行比較。 – 2012-01-27 14:01:18

+0

所以我必須堅持使用布爾變量 – 2012-01-27 14:07:52

回答

1

沒有通用的解決方案,但您可以使用isDebuggerConnected

但是如果您的用戶將手機連接到PC並使用ddms,該解決方案也會觸發/顯示調試功能。

也許你與前人的精力支票阿萊克斯摹提出的一個結合這一點,並在每提醒您禁用調試;-)

0

爲什麼不利用這個開始彈出一個烤麪包的消息?

if (BuildConfig.DEBUG) { 
    // what shall happen in debug version 
} else { 
    // release version 
} 
相關問題