Salut à tous,
Je cherche à communiquer avec l’émulateur Android via Eclipse et je ne sais pas du tout par où commencer ?
Salut à tous,
Je cherche à communiquer avec l’émulateur Android via Eclipse et je ne sais pas du tout par où commencer ?
Ta demande n'est pas très claire. Tu veux tout simplement faire du développement Android à travers ton EDI Eclipse, non ?
Responsable Java de Developpez.com (Twitter et Facebook)
Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
--------
Architecte Solution
LinkedIn : https://www.linkedin.com/in/nicolascaudard/
Salut,
Suis n'importe quel tutoriel d'installation d'Eclipse pour du développement sur Android. C'est très simple à installer et bien expliqué partout.
Non robin56 ça je le fais deja enfaite je dois envoyer une image qui est sur le pc l'emulateur en utilisant les sockets dont je ne connais pas grands chose
Ce que tu souhaites faire est déjà un peu plus clair, même si ce serait bien de préciser un peu.
Je laisse les pro d'Android te répondre![]()
toujours pas clair.
Tu veux passer par des requetes Http ? ou bien passer par du USB ? Depuis l'application, en externe (console) ?
Est ce que tu veux accéder a la sdcard externe ou bien au au directory de ton application ?
Okiaccédé à l'image dans c:\ ==> envoie de l'image en utilisant les sockets vers l'avd ==>et l'afficher dans un ImageView
adb push <path_image_c> /mnt/sdcard/<path_image_sdcard>accédé à l'image dans c:\ ==> envoie de l'image en utilisant les sockets vers l'avd
tu set la source sur ton /mnt/sdcard/<path_image_sdcard>, par contre il te faudra la permission READ_EXTERNAL_STORAGEet l'afficher dans un ImageView
http://developer.android.com/referen...TERNAL_STORAGE
Ben tu l'envoie par l'adb en manuel depuis ton pc, et tu l'as lis depuis ton application simplement ! Ce n'est pas ce que tu veux ? Si tu veux télécharger l'image depuis ton application dans ce cas regarde depuis la classe USBManager.si je comprends je lis directement l'image sans envoi ou qw?
Cela sera la même choseje vois que cela pourrait marcher, mais si l'application est maintenant sur un appareil réel ??.
ok
je suis sur une nouvelle piste qui selon moi va me permettre d'en connaitre un peu plus
-crée un socket en utilisant la class ServerSocket
-lire l'image à partir du pc et l'encoder en base64 string
-envoyer le string au client utilisant la fonction DataOutputStrem.writeUTF(imageDataString)
-et à la reception l'operation inverse et afficher l'image sur l'emulateur
serveur.java
cote client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 import java.net.*; import java.io.*; import org.apache.commons.codec.binary.Base64; public class Serveur { private static DataInputStream dataInputStream; private static DataOutputStream dataOutputStream; public static void main(String[] args) throws IOException { // create socket ServerSocket servsock = new ServerSocket(13267); dataInputStream = new DataInputStream(sock.getInputStream()); dataOutputStream = new DataOutputStream(sock.getOutputStream()); while (true) { System.out.println("Waiting..."); Socket sock = servsock.accept(); System.out.println("Accepted connection : " + sock); File myFile = new File("e:\\a_envoyer.jpg"); System.out.println("Sending..."); FileInputStream imageInFile = new FileInputStream(myFile); byte imageData[] = new byte[(int) myFile.length()]; imageInFile.read(imageData); String imageDataString = encodeImage(imageData); System.out.println(imageDataString.length()); System.out.println(imageDataString); dataOutputStream.writeUTF(imageDataString); dataOutputStream.flush(); sock.close(); } } public static String encodeImage(byte[] imageByteArray) { return Base64.encodeBase64String(imageByteArray); } }
MainActivity.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 package com.example.andcl; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import Base.Base64; public class MainActivity extends Activity { ImageView imageView; Socket socket = null; DataOutputStream dataOutputStream = null; DataInputStream dataInputStream = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.imageView1); try { socket = new Socket(" @IP ", 13267); dataOutputStream = new DataOutputStream(socket.getOutputStream()); dataInputStream = new DataInputStream(socket.getInputStream()); // dataOutputStream.writeUTF(textOut.getText().toString()); String base64Code = dataInputStream.readUTF(); Log.d("String", ":" + base64Code); // byte[] decodedString = null; try { decodedString = Base64.decode(base64Code); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d("ErrorHere", "" + e); } Log.d("St--", ":" + decodedString.length); Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); imageView.setImageBitmap(bitmap); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d("Error", "" + e); } finally { if (socket != null) { try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (dataOutputStream != null) { try { dataOutputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (dataInputStream != null) { try { dataInputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
le Log que j'obtiens
besoin d'aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 03-12 11:03:09.940: D/LightsService(374): Excessive delay setting light: 100ms 03-12 11:03:10.020: D/LightsService(374): Excessive delay setting light: 69ms 03-12 11:03:10.080: D/LightsService(374): Excessive delay setting light: 60ms 03-12 11:03:10.150: D/LightsService(374): Excessive delay setting light: 61ms 03-12 11:03:10.320: D/LightsService(374): Excessive delay setting light: 89ms 03-12 11:03:10.390: D/LightsService(374): Excessive delay setting light: 57ms 03-12 11:03:43.590: D/AndroidRuntime(1071): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<< 03-12 11:03:43.610: D/AndroidRuntime(1071): CheckJNI is ON 03-12 11:03:43.750: D/dalvikvm(1071): Trying to load lib libjavacore.so 0x0 03-12 11:03:43.770: D/dalvikvm(1071): Added shared lib libjavacore.so 0x0 03-12 11:03:43.830: D/dalvikvm(1071): Trying to load lib libnativehelper.so 0x0 03-12 11:03:43.830: D/dalvikvm(1071): Added shared lib libnativehelper.so 0x0 03-12 11:03:43.840: D/dalvikvm(1071): No JNI_OnLoad found in libnativehelper.so 0x0, skipping init 03-12 11:03:44.340: D/dalvikvm(1071): Note: class Landroid/app/ActivityManagerNative; has 179 unimplemented (abstract) methods 03-12 11:03:45.620: E/memtrack(1071): Couldn't load memtrack module (No such file or directory) 03-12 11:03:45.620: E/android.os.Debug(1071): failed to load memtrack module: -2 03-12 11:03:46.170: D/AndroidRuntime(1071): Calling main entry com.android.commands.pm.Pm 03-12 11:03:46.290: D/AndroidRuntime(1071): Shutting down VM 03-12 11:03:46.300: D/dalvikvm(1071): Debugger has detached; object registry had 1 entries 03-12 11:03:47.520: D/AndroidRuntime(1082): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<< 03-12 11:03:47.530: D/AndroidRuntime(1082): CheckJNI is ON 03-12 11:03:47.730: D/dalvikvm(1082): Trying to load lib libjavacore.so 0x0 03-12 11:03:47.750: D/dalvikvm(1082): Added shared lib libjavacore.so 0x0 03-12 11:03:47.820: D/dalvikvm(1082): Trying to load lib libnativehelper.so 0x0 03-12 11:03:47.820: D/dalvikvm(1082): Added shared lib libnativehelper.so 0x0 03-12 11:03:47.820: D/dalvikvm(1082): No JNI_OnLoad found in libnativehelper.so 0x0, skipping init 03-12 11:03:48.240: D/dalvikvm(1082): Note: class Landroid/app/ActivityManagerNative; has 179 unimplemented (abstract) methods 03-12 11:03:49.410: E/memtrack(1082): Couldn't load memtrack module (No such file or directory) 03-12 11:03:49.410: E/android.os.Debug(1082): failed to load memtrack module: -2 03-12 11:03:49.990: D/AndroidRuntime(1082): Calling main entry com.android.commands.am.Am 03-12 11:03:50.120: I/ActivityManager(374): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.andcl/.MainActivity} from pid 1082 03-12 11:03:50.310: E/gralloc_goldfish(52): gralloc_alloc: Mismatched usage flags: 237 x 148, usage 333 03-12 11:03:50.310: W/GraphicBufferAllocator(52): alloc(237, 148, 1, 00000333, ...) failed -22 (Invalid argument) 03-12 11:03:50.310: E/(52): GraphicBufferAlloc::createGraphicBuffer(w=237, h=148) failed (Invalid argument), handle=0x0 03-12 11:03:50.320: E/BufferQueue(374): [ScreenshotClient] dequeueBuffer: SurfaceComposer::createGraphicBuffer failed 03-12 11:03:50.330: W/WindowManager(374): Screenshot failure taking screenshot for (237x148) to layer 21005 03-12 11:03:50.430: D/AndroidRuntime(1082): Shutting down VM 03-12 11:03:50.440: D/jdwp(1082): Got wake-up signal, bailing out of select 03-12 11:03:50.440: D/dalvikvm(1082): Debugger has detached; object registry had 1 entries 03-12 11:03:51.060: W/System.err(894): android.os.NetworkOnMainThreadException 03-12 11:03:51.060: W/System.err(894): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145) 03-12 11:03:51.070: W/System.err(894): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84) 03-12 11:03:51.080: W/System.err(894): at libcore.io.IoBridge.connectErrno(IoBridge.java:127) 03-12 11:03:51.080: W/System.err(894): at libcore.io.IoBridge.connect(IoBridge.java:112) 03-12 11:03:51.080: W/System.err(894): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 03-12 11:03:51.080: W/System.err(894): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 03-12 11:03:51.080: W/System.err(894): at java.net.Socket.startupSocket(Socket.java:567) 03-12 11:03:51.080: W/System.err(894): at java.net.Socket.tryAllAddresses(Socket.java:128) 03-12 11:03:51.080: W/System.err(894): at java.net.Socket.<init>(Socket.java:178) 03-12 11:03:51.080: W/System.err(894): at java.net.Socket.<init>(Socket.java:150) 03-12 11:03:51.080: W/System.err(894): at com.example.andcl.MainActivity.onCreate(MainActivity.java:36) 03-12 11:03:51.080: W/System.err(894): at android.app.Activity.performCreate(Activity.java:5243) 03-12 11:03:51.080: W/System.err(894): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 03-12 11:03:51.120: W/System.err(894): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 03-12 11:03:51.130: W/System.err(894): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 03-12 11:03:51.150: W/System.err(894): at android.app.ActivityThread.access$700(ActivityThread.java:135) 03-12 11:03:51.150: W/System.err(894): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 03-12 11:03:51.150: W/System.err(894): at android.os.Handler.dispatchMessage(Handler.java:102) 03-12 11:03:51.160: W/System.err(894): at android.os.Looper.loop(Looper.java:137) 03-12 11:03:51.160: W/System.err(894): at android.app.ActivityThread.main(ActivityThread.java:4998) 03-12 11:03:51.160: W/System.err(894): at java.lang.reflect.Method.invokeNative(Native Method) 03-12 11:03:51.160: W/System.err(894): at java.lang.reflect.Method.invoke(Method.java:515) 03-12 11:03:51.160: W/System.err(894): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 03-12 11:03:51.160: W/System.err(894): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 03-12 11:03:51.160: W/System.err(894): at dalvik.system.NativeStart.main(Native Method) 03-12 11:03:51.160: D/Error(894): android.os.NetworkOnMainThreadException 03-12 11:03:51.820: W/EGL_emulation(894): eglSurfaceAttrib not implemented 03-12 11:03:51.940: I/Choreographer(374): Skipped 64 frames! The application may be doing too much work on its main thread. 03-12 11:03:52.970: I/Choreographer(374): Skipped 42 frames! The application may be doing too much work on its main thread. 03-12 11:03:53.050: I/ActivityManager(374): Displayed com.example.andcl/.MainActivity: +2s625ms 03-12 11:03:53.270: D/(52): HostConnection::get() New Host Connection established 0xb8a41c90, tid 1093 03-12 11:04:48.430: D/LightsService(374): Excessive delay setting light: 78ms 03-12 11:04:48.500: D/LightsService(374): Excessive delay setting light: 65ms 03-12 11:04:48.570: D/LightsService(374): Excessive delay setting light: 67ms 03-12 11:04:48.680: D/LightsService(374): Excessive delay setting light: 106ms 03-12 11:04:48.760: D/LightsService(374): Excessive delay setting light: 86ms 03-12 11:04:48.820: D/LightsService(374): Excessive delay setting light: 61ms 03-12 11:04:48.920: D/LightsService(374): Excessive delay setting light: 88mset merci
Pas de réseaux dans l'UI Thread c'est interdit car on freeze l'UI.android.os.NetworkOnMainThreadException
Utilise les AsyncTask pour réaliser ce que tu veux.
Oki ( Socket --> Web) je n'aais pas compris :s.
Partager