2015-07-28 14 views
5

Sto lavorando a un'applicazione Android che utilizza Bluetooth per comunicare con un PC nelle vicinanze. L'app funziona molto sul mio dispositivo (Samsung Galaxy Note 3 - CM 12.1) ma sui miei beta-tester non funziona.AntiVirus uccide la mia applicazione

In poche parole l'applicazione permette alle persone di scrivere e ricevere SMS dal proprio PC (con il mio C# WPF app) via Bluetooth & il loro telefono cellulare.

mio beta-tester sta usando una nota 4 ROM stock Samsung Galaxy (Lollipop).

All'inizio pensavo che quando i suoi schermi si spensero, Android avrebbe ucciso MainActivity che conteneva alcuni thread tra cui quello che mantiene in vita la connessione (con un metodo di blocco inpustream.read()). Tale comportamento non si verifica sul mio dispositivo: potrei mantenere in vita la connessione per un'intera notte senza collegare il mio telefono.

Sono stato avvisato, tuttavia, che l'utilizzo dei servizi eviterebbe tale problema perché Android non si comporta allo stesso modo da un dispositivo a un altro. Così ho aggiornato la mia app e reso MainActivity utilizza il mio MainService per generare i relativi thread. Ma non ha cambiato nulla.

Come suggerisce il mio titolo, il problema sta nel suo antivirus e più precisamente: AVG. Non ho idea di come funziona un antivirus su Android e non ne uso nemmeno uno. Congelando AVG con Titanium Backup sul suo Galaxy Note 4 con radici, l'app si arresta in modo anomalo e ora funziona perfettamente come previsto.

Quindi mi chiedo, come mai AVG ha decimato di uccidere la mia app quando lo schermo del dispositivo è spento? Come dovrebbe comportarsi la mia app in modo che ciò non accada con altri utenti che utilizzano AVG o altri antivirus? Cosa devo fare in modo che la mia app non sembri sospetta?

risposta

0

Non so esattamente cosa ha fatto AVG alla tua app.Ma penso che AVG potrebbe non consentire alla tua app di attivare il Bluetooth o utilizzare il Bluetooth quando il dispositivo Android è inattivo o invia/ricevi SMS .Il AVG è un tipo di app antivirus che la maggior parte di loro ha molte richieste di autorizzazione limitate o strategia di risparmio energetico, in particolare sui dispositivi Android con root o l'app della prima parte già presente nelle ROM Android.

Cerca di chiarire che qual è il vero punto che AVG ha apportato alla tua app. Quindi prova a risolvere i tuoi problemi con gentilezza e intelligenza.

Ad esempio:

1.Se l'AVG non consente di utilizzare BluetoothAdapter.enable() per forzare per attivare il Bluetooth, provare a utilizzare Activity.startActivityForResult() per consentire agli utenti di scegliere se girare su Bleutooth o no.

2.Se AVG non consente di utilizzare Bluetooth quando il dispositivo Android è inattivo. È possibile provare a utilizzare WakeLock.acquire() per mantenere il dispositivo Android.

3.Se l'AVG non consente l'invio o la ricezione di SMS. È possibile modificare un altro protocollo di comunicazione, SPP o BLE o altro.

Forse hai sentito Xiaomi.Se sei uno sviluppatore Android in Cina, perché Xiaomi è molto popolare in Cina, devi affrontare l'adattamento con Xiaomi, e poi scoprirai che Xiaomi è davvero fottutamente per gli sviluppatori Android in Cina.

Xiaomi non alcune cose davvero incredibili per l'esempio originale Android.For:

1. AlertDialog..getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); non è possibile avvisare la finestra di dialogo TYPE_SYSTEM_ALERT su alcune ROM Xiaomi che ti dicono nulla.

2.Xiaomi ha modificato molti temi originali.

3.Xiaomi ha modificato il meccanismo di temporizzazione dell'allarme Android mentre il dispositivo è inattivo, chiamato Wake-Up-Alignment. Questo è davvero terribile per le app che con la funzione di cronometraggio.

I problemi di cui sopra sono che ho incontrato nello sviluppo di Android, alcuni problemi sono in grado di risolverlo, alcuni non si ha alcuna possibilità di cambiarlo.

Ricorda che: l'adattamento con i dispositivi Android è che devi far sapere ai tuoi utenti che l'app funziona sulla maggior parte dei famosi dispositivi Android, gli sviluppatori cercano di far funzionare l'app sulla maggior parte dei dispositivi Android, ma forse non funziona su alcuni dispositivi Android si basano su ROM personalizzate o con alcune speciali app di terze parti. È vero, è Android.

Se il problema non può essere risolto, non è un problema!

+0

Grazie per la risposta, ma temo di non essermi spiegato più chiaramente. Tutti i lavori di cui sopra. Posso usare il Bluetooth, posso inviare SMS senza un singolo problema. Il problema è che AVG uccide la mia app. Lo uccide non appena passa allo sfondo quando lo schermo si blocca. Questo è tutto. AVG non lascerà in vita la mia app e la connessione Bluetooth in corso: la interromperà. Per quanto riguarda la parte in cui ci sono Android è di molti vestiti, questo è accettabile. Ma AVG sta uccidendo la mia app, che non posso accettare. – Mackovich

Problemi correlati