api lvl 8과 9에서 작동하는 파일 발신자 코드가 있습니다. 그러나 target-api lvl을 16 또는 17로 변경하면 오류가 발생하고 프로그램이 직접 닫힙니다. < "android : targetSdkVersion = .."> 속성을 제거하면 작동합니다. 하지만 16 또는 17 lvl로 그 속성을 써야합니다. 나는 16 또는 17 api lvls를 일할 필요가있다. 다음은Nexus 7 android api lvl 16과 17에서 소켓을 열면 충돌이 발생합니까?
SendButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
Socket sock = new Socket("192.168.2.7",5656);
File myFile = new File ("/mnt/sdcard/TEST/TEST.xml");
byte [] mybytearray = new byte [(int)myFile.length()];
FileInputStream fis = new FileInputStream(myFile);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(mybytearray,0,mybytearray.length);
OutputStream os = sock.getOutputStream();
os.write(mybytearray,0,mybytearray.length);
os.flush();
sock.close();
}
catch (IOException e) {
}
}
});
: 은 (17 LVL 내 넥서스 7 버전 4.2.2 (API)와 내가 USB 애플리케이션에 대한 몇 가지 16/17 API를 LVL 속성을 사용합니다) 여기에
는 작업 전송 파일 코드 내 안드로이드 매니페스트 파일 버전 및 사용 권한 :
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
코드는 이와 유사합니다. 하지만 나는 android : targetSdkVersion = "16 or 17"을 변경할 필요가있다.
Nexus7에 대한 문제 해결 방법은 무엇입니까?
API 11에 추가 된 http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
에서 자세한 내용을 볼 수 있습니다. 모든 것이 이제 잘됩니다. – tolgatuna26