2016-01-19 3 views
0

Je sais que la première chose qui vous vient à l'esprit est que je n'ai pas cherché la réponse, mais j'ai fait, ALOT. J'ai essayé de comprendre que les gens jetaient du code de manière inconsidérée, sans même tester si ça fonctionnait (ce n'est pas le cas). Je ne fais pas que copier du code, mais les réponses que j'ai trouvées ne sont pas utiles.Comment obtenir la force du signal android?

CellSignalStrength est le plus proche de ce dont j'ai besoin, mais le problème auquel je suis confronté est qu'il n'y a pas de constructeur pour utiliser la classe, et j'ai essayé de faire une nouvelle classe et de l'étendre, ça n'a pas fonctionné, La documentation android est bonne, sans offrir un petit morceau de code à suivre, je ne sais pas quoi faire.

J'utilise API 8, qui ne supporte pas cette classe, que dois-je faire?

Répondre

0
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
List<CellInfo> all = telephonyManager.getAllCellInfo(); 
CellInfoGsm cellinfogsm = (CellInfoGsm) all.get(0); 
CellSignalStrengthGsm cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength(); 
int strengthDbm = cellSignalStrengthGsm.getDbm(); 

devrait fonctionner correctement pour API 17+. Je ne suis pas au courant de toute API pour aider < 17, cependant.

+0

J'ai fait un nouveau projet avec l'API 17 pour le tester. il donne le message d'erreur "ne peut pas résoudre le contexte du symbole", celui de la première ligne. – Macromeda

+0

La référence 'context' pourrait être votre' Activity', très probablement. (https://developer.android.com/reference/android/content/Context.html) –

+0

J'ai essayé mais cela n'a pas fonctionné: TelephonyManager telephonyManager = (TelephonyManager) activity_main.getSystemService (Context.TELEPHONY_SERVICE); – Macromeda