2014-04-30 12 views
8

Vorrei fornire un'impostazione nelle impostazioni delle mie app Android per consentire all'utente di disabilitare l'uso del software di analisi, incluso Crashlytics. Tuttavia, Crashlytics.start(Context) viene chiamato molto prima che l'utente arrivi alla pagina delle impostazioni e non vedo una funzione equivalente Crashlytics.stop(Context). È possibile interrompere Crashlytics all'interno dell'app dopo che è stata avviata?Come posso disabilitare Crashlytics in fase di esecuzione in risposta a una modifica delle preferenze dell'utente?

+2

si può considerare la scelta dell'utente sul prossimo app start e saltare l'inizializzazione. Per la sessione corrente dell'app avrà attivato il crashlytics. Pensi che questo sia un grosso problema per gli utenti? – middlehut

+2

Poiché si tratta di un problema relativo alla privacy, ritengo sia inopportuno non applicare immediatamente la modifica delle preferenze. Ai nostri utenti sarà sicuramente importato se i dati vengono inviati a terze parti quando hanno espressamente richiesto di non esserlo. – kemitche

risposta

2

Sono stato informato che il caso specifico che sto tentando non è attualmente possibile. Tuttavia, posso dare agli utenti di controllare o meno di inviare i dati a Crashlytics attivando la "Privacy prompt" nella parte impostazioni App del cruscotto Crashlytics:

Go here per selezionare l'applicazione che si desidera aggiungere la finestra di dialogo e quindi fare clic su "Abilita richiesta di privacy" nell'angolo in alto a sinistra.

da: http://support.crashlytics.com/knowledgebase/articles/349914-can-i-toggle-whether-or-not-a-user-needs-to-give-p

+0

Quindi verrà chiesto all'utente ogni volta che si verifica un arresto anomalo o no? – chokdee

1

E 'facile da fare.

  1. Aggiungi una preferenza alle impostazioni della tua app e lascia che l'utente decida se vuole farlo o meno.
  2. Implementare UncaughtExceptionHandler e ti piace questo

@Override public void uncaughtException(Thread thread, Throwable ex) { SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(MyApplication.getAppContext()); Boolean send = sharedPref.getBoolean(MySettingsActivity.KEY_PREF_SEND_ERROR, true); if (send) { orgHandler.uncaughtException(thread, ex); } else System.exit(0); }

Problemi correlati