Como manipular arquivos de um Pocket PC via ActiveSync em Java?

Bom dia…

Gostaria se há uma maneira prática de se comunicar com um Pocket PC (Windows CE e Windows Mobile).

A empresa aqui trabalha com coletores de dados, e a manipulação de arquivos dos coletores (busca, deleção e criação/tranferências) é feita via uma aplicação C#.

Hoje há interesse de ampliação dessa aplicação, mas por vários motivos, surge a necessidade de usar o Java.

Tem como monitorar e utilizar conexões ActiveSync em Java?
Estamos aqui tentando usar .DLL em C# no Java… mas a solução não me parece nada prática. Alguém tem alguma implementação em mente?

Obrigado pela atenção,
Aguardo respostas.

Que tipo de máquina virtual você vai usar?

Lido com pockets a muitos anos e basicamente usamos C/C++/C# , nas vezes que tentamos pensar em Java esbarramos
com as limitações das máquinas virtuais. A única coisa que ainda ajudava era o tal do SuperWaba.

Alem da questão de que o Windows Mobile está indo para o seu fim. Até quando vocês vão conseguir manter esses coletores.

Aqui já estamos começando a transformar tudo em Android.

[quote=JoaoBluSCBR]Que tipo de máquina virtual você vai usar?

Lido com pockets a muitos anos e basicamente usamos C/C++/C# , nas vezes que tentamos pensar em Java esbarramos
com as limitações das máquinas virtuais. A única coisa que ainda ajudava era o tal do SuperWaba.

Alem da questão de que o Windows Mobile está indo para o seu fim. Até quando vocês vão conseguir manter esses coletores.

Aqui já estamos começando a transformar tudo em Android.
[/quote]

Quero criar um programa Desktop em Java para manipular os arquivos dentro do coletor (copiar, deletar, criar).
Desconheço opções viáveis de coletores em Android. E esse também não é o caso. Afinal, se algum dia os PocketPC M$ morrerem, mudam-se apenas as classes de comunicação.

Então… dito isso…
O requisito é uma aplicação Desktop em Java que comunique-se com o Coletor de Dados e faça essas manipulações.

Pergunta:
Quando vc insere o dispositivo, não aparece uma unidade removível?
Se aparecer, vc pode acessar o dispositivo pelo seu caminho: Ex.: F:

Até mais

[quote=eliangela]Pergunta:
Quando vc insere o dispositivo, não aparece uma unidade removível?
Se aparecer, vc pode acessar o dispositivo pelo seu caminho: Ex.: F:

Até mais[/quote]

Isso é suscetível a MUITOS problemas…

Em diferentes computadores, o nome da unidade pode mudar… Esse tipo de solução não é aplicável.
A única maneira que conheço hoje automatizada e encapsulada fora dos olhos do usuário é o ActiveSync.

Gostaria de saber uma solução para uso do ActiveSync ou algum modo de conexão com dispositivos Windows CE e PocketPC que permita manipular os arquivos deles.

O que será que dá para aproveitar daqui?

http://z-push.sourceforge.net/soswp/

Resolvi esse problema com esse tópico que eu postei.
http://www.guj.com.br/java/244077-resolvido-problema-com-usb-jusb#1263094
Acredito que vá resolver seu problema.

Funciona assim: Eu fico monitorando as unidades de Disco. Quando uma nova unidade é inserida, eu disparo um evento “dispositivoInserido”, onde vc pode fazer o que vc quiser.

Espero ter ajudado.

[quote=eliangela][quote=mbarni]
Isso é suscetível a MUITOS problemas…

Em diferentes computadores, o nome da unidade pode mudar… Esse tipo de solução não é aplicável.
[/quote]

Resolvi esse problema com esse tópico que eu postei.
http://www.guj.com.br/java/244077-resolvido-problema-com-usb-jusb#1263094
Acredito que vá resolver seu problema.

Funciona assim: Eu fico monitorando as unidades de Disco. Quando uma nova unidade é inserida, eu disparo um evento “dispositivoInserido”, onde vc pode fazer o que vc quiser.

Espero ter ajudado.[/quote]

Isso não resolve meu problema. Os dispositivos Windows Mobile quando conectados ao Windows Desktop, não criam uma unidade. Criam um tipo de link via USB chamado de WindowsCE, e este não é acessado de forma comum via Java.

[quote=entanglement]O que será que dá para aproveitar daqui?

http://z-push.sourceforge.net/soswp/
[/quote]

O z-push é 100% em PHP.

Vixi… então fica complicado!
Vc não vai conseguir usando uma solução 100% java.
Vai ter que ser na base da DLL mesmo.

Até mais

Vixi… então fica complicado!
Vc não vai conseguir usando uma solução 100% java.
Vai ter que ser na base da DLL mesmo.

Até mais[/quote]

Que seja…

Desde que alguém me diga uma forma simples de fazer este tipo de chamado a .DLL que conectem com o coletor de dados. Está ótimo.

1º - Vc precisa saber qual DLL do ActiveSync é responsável por essa comunicação. Depois disso vc precisa saber quais funções acessar.

2º - Para o Java acessar DLL, vc deve procurar por JNI ou JNA.
O JNI é nativo na JVM, só que é chato de usar.
O JNA é mais fácil de usar, mas vc tem que baixar os JAR pra trabalhar com ele.

Ambos leem somente DLLs escritas em C/C++ (ou seja, vc vai ter que fazer uma DLL em C/C++ pra comunicar com a DLL do ActiveSync)

Resumindo… siiiiiimples não é. Mas tem jeito.