Я пытался отправить изображение, используя определенную сеть, изображение успешно отправляется, когда я не упоминаю о какой-либо сети. Я пробовал это с Asyn c задача и IntentService. Также, если я не упоминаю ни о какой сети, и состояние приложения работает, когда я пытаюсь отключить Wi-Fi, а затем включаю его снова, изображение не отправляется.
Заранее спасибо
Класс обслуживания
public class ImageService extends IntentService {
public ImageService() {
super("HelloIntentService");
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
protected void onHandleIntent(@Nullable final Intent intent) {
new Thread(new Runnable() {
@Override
public void run () {
byte[] bytesss=intent.getByteArrayExtra("byte");
try {
Socket socket = new Socket("ip_address", 8888);
OutputStream out = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(out);
dataOutputStream.write(bytesss);
dataOutputStream.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
MainActivity. java
private WifiManager wifiManager;
String networkSSID="network";
String networkPassword="pass123";
int netId;
wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
networkConfiguration();
}
private void networkConfiguration(){
WifiConfiguration configuration=new WifiConfiguration();
configuration.SSID="\""+networkSSID+"\"";
configuration.preSharedKey="\""+networkPassword+"\"";
wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
netId=wifiManager.addNetwork(configuration);
wifiManager.disconnect();
wifiManager.enableNetwork(netId,true);
wifiManager.reconnect();
}
private BroadcastReceiver wifiStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action=intent.getAction();
if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)){
if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED,false)){
Toast.makeText(context, "wifi connected", Toast.LENGTH_SHORT).show();
sendingImage();
}else{
Toast.makeText(context, "Please Check Your Internet Connection", Toast.LENGTH_SHORT).show();
}
}
}
};
@Override
protected void onStart() {
super.onStart();
networkConfiguration();
IntentFilter intentFilter = new IntentFilter(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
registerReceiver(wifiStateReceiver, intentFilter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(wifiStateReceiver);
stopService(new Intent(this, SendImageClientService.class));
}
private void sendingImage() {
drawable = (BitmapDrawable) imageView.getDrawable();
bitmap = drawable.getBitmap();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] array = byteArrayOutputStream.toByteArray();
Intent serviceIntent=new Intent(this,ImageService.class);
serviceIntent.putExtra("byte",array);
this.startService(serviceIntent);
}