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

11 respostas
M

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.

11 Respostas

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.

M

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.

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.

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

M

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

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.

E

O que será que dá para aproveitar daqui?

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

eliangela

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.

M

eliangela:
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.

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.

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.

M

entanglement:
O que será que dá para aproveitar daqui?

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

O z-push é 100% em PHP.

eliangela

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

M

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

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.

eliangela

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.

Criado 3 de agosto de 2011
Ultima resposta 4 de ago. de 2011
Respostas 11
Participantes 4