我是Android新手,这是我的第一款应用。我想知道如何从远程计算机读取日志文件。我尝试了以下使用IP地址,但似乎没有用:
try
{
URL url = new URL("`http://10.0.161.72/C:/adsb.log`");
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()))
//...
}
也可以通过网络驱动器访问该文件。我尝试了以下代码,它在Java中工作,但不是android。
try
{
File file = new File("T:\\AN\\3.00\\adsb.log");
BufferedReader br = new BufferedReader(new FileReader(file));
}
如果我复制日志文件并将其放在我的android项目的assets文件夹中,我就能读取该文件。但我想从网络驱动器或远程PC访问它,因为日志文件最终会每隔几秒更新一次,我必须不断阅读它。
答案 0 :(得分:0)
请确保您已向您的应用授予了互联网权限。在AndroidManifest.xml
中使用此
<uses-permission android:name="android.permission.INTERNET"/>
从url获取日志/文件,你应该记住,android系统在UI(用户界面)线程中保护使用Internet的长块,以防止应用程序无响应。要在主线程上正确下载文件,您需要使用某种异步线程来下载文件并对主线程进行回调以处理它。我建议您使用AsynTask。
但是,为了快速解决问题,您可以在onCreate()
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
使用public StrictMode.ThreadPolicy.Builder permitAll()
禁用所有内容的检测。这意味着可以在UI线程上进行网络操作。虽然这可能有效,但在UI线程上运行网络调用是不好的做法。
希望这有帮助。