我的应用正在使用HttpURLConnection从网络下载数据,因此它要求INTERNET权限。
我是否还要检查设备是否已连接到网络(通过ConnectivityManager和NetworkInfo),从而将ACCESS_NETWORK_STATE添加到请求的权限,或者我应该只是尝试下载数据并处理异常?
Google的Connecting to the Network和Managing Network Usage指南都建议开发人员在尝试进行网络操作之前检查网络状态以获得“更好的用户体验”,但我记得在阅读教程时(我是目前无法找到)只是要求提出真正不可避免的权限,以免吓跑用户并获得更好的“自我控制”。
所以,
答案 0 :(得分:1)
即使您在拨打远程服务之前检查网络可用性,仍然需要在对话期间处理案例连接失败。毕竟在2G上下载几百kB需要几秒钟,你可以随时断开连接(用户甚至可以通过进入飞行模式来打断你)。
让对用户好。以非侵入方式向他们展示错误。