الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اقوم بارسال رساله تلقائيه من السيرفر للموبايل؟

بدأه bandana في 3 مارس 2006 · 5 رد · 1,829 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخوتي في الله

انا بحاجه ماسه إلى مساعدتكم اخوتي الكرام

بالحقيقه انا اقوم بعمل مشروع بJ2ME واحتاج الى مساعدتكم في تطبيق خدمه تصعب علي

والواقع انني اريد ان ابعث رساله من السيرفر الى موبايل معين وذلك عندما يدخل الموبايل في نطاق ميعن ايضا

مثلا لو كان لدي منطقه A ودخل في هذه المنطقه الجهاز b يجب ان يقوم السيرفرر بارسال رساله تحتوي اعلان معين او اي شي الى ذلك الموبايل

علما بانني استخدم tomcat serverواستخدم eclips للكتابه عليه وطبعا ابرمج بلغه الJ2ME

اتمنى منكم المساعده لاني متوقفه ولا اعرف كيف اكمل مشروعي والوقت يداهمني واتمنى منكم مساعدتي

مشكلتي اني وجدت اكواد ولكن يجب على الموبايل ان يطلب الخدمه لارسال المسج وليش السيرفر هو من يرسل لوحده المسج

لا اعرف قرات عن تقنيه تسمىJMS Server ولكني اجد صعوبه بفهمه وكيف يمكنني ان اعمل ربط بينه وبين السيرفر الذي استخدمه

ارجوكم ساعدوني

مع تحياتي لكل من يحاول مساعدتي وجزاكم الله كل الخير

#2

بسم الله الرحمن الرحيم .....

اولا : هل الرسالة المرسلة تكون بواسطة البلوتوث او SMS عادية ؟؟؟

الجواب : اذا كان بواسطة البلوتوث فاعتقد ان ذلك سيكون اسهل من ال SMS العادية ... وذلك باستخدام تقنية الجافا والمكتبة

package javax.bluetooth . ... زوري هذا الرابط

http://developers.sun.com/techtopics/mobil...ntro/index.html

وايضا

http://developers.sun.com/techtopics/mobil...ages/index.html

اما اذا كانت الرسالة هي SMS فذلك يتطلب الربط مع الاقمار الصناعية حتي يتم منك تحديد ابعاد معينة لمنطقة الدخول الي المجال المقصود

......................

اوكي ... من اخر كلامك ( يجب على الموبايل ان يطلب الخدمه لارسال المسج وليش السيرفر هو من يرسل لوحده المسج)

يمكنكي ان تحلي مشكلتك بالاتي :

ان تقومي بعمل برنامج في الموبايل .... يقوم هذا البرنامج بالاتصال بالسيرفر المعين ويقوم السيرفر بالرد علية ....

ال JMS ليست لها علاقة بمشروعك .... انظري بالاسفل

http://developers.sun.com/sw/building/code.../jms/index.html

ارجو ان اكون قد وضحت

وشكرا :o

#3

اخي الكريم لايسعني الا ان اقدم لك جزيل الشكر ويكفي انك اخذت رسالتي بعين الاعتبار

احب ان اوضح ان خدمتي هي بارسال sms من السيرفر للموبايل

انت اخبرتني (يمكنكي ان تحلي مشكلتك بالاتي :

ان تقومي بعمل برنامج في الموبايل .... يقوم هذا البرنامج بالاتصال بالسيرفر المعين ويقوم السيرفر بالرد علية .... )

ولكن هذا عكس مااريده انا اريد ان يكتشف السيرفر الجهاز ثم اقوم بعمل push للsms لهذا الجهاز

اتمنى منك او من اي احد ان يدلني اكثر علما بانني مبتدئه ولكني ان شاء الله استطيع ان اكمل بمجرد دعمكم لي

وجزاك الله الف خير

#4

السلام عليكم ورحمة الله وبركاته

اخوتي الكرام ارجو المساعده في شرح هذا المثال

انا قمت بوضع هذا الcodeفي داخل class واسميته sender

import javax.microedition.*;
import javax.microedition.io.Connector;
import javax.wireless.messaging.*;
public class sender {

	public sender()
	{
	String address = "sms://+447111222333";
	MessageConnection smsconn = null;
	try {
  //Open the message connection.
	smsconn = (MessageConnection)Connector.open(address);
	TextMessage txtMessage =(TextMessage)smsconn.newMessage(MessageConnection.TEXT_MESSAGE);
	txtMessage.setPayloadText("Hello World");
	smsconn.send(txtMessage);
	smsconn.close();
	} catch (Exception e) {
  //handle
	}
	}

	//public void send1()
	{
  
	}
	}

وضعت class اخر اسميته receiver

import javax.wireless.messaging.*;

import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class receiver  implements MessageListener, Runnable {

	private String receivedMessage;
	private String senderAddress;
	private MessageConnection smsconn;
	Display dsp;
	public void openReceiver(String smsPort)
	{
  //smsPort has the form “1234”
	try {
	smsconn = (MessageConnection) Connector.open("sms://:" + smsPort);
	smsconn.setMessageListener(this);
  } 
	catch (IOException ioe)
	{

	}
	}
	public void notifyIncomingMessage(MessageConnection conn) {
  new Thread(this).start();
	}

	public void run(){
	receiveMessage();
	}

	public String receiveMessage(){
	Message msg = null;
	try {
	msg = smsconn.receive();
	if (msg != null) {
	senderAddress = msg.getAddress();
	if (msg instanceof TextMessage)
	{
  
	receivedMessage = ((TextMessage)msg).getPayloadText();
	}
	else 
	{
  //do something with binary message
	}
  }
  }
	catch (IOException e) 
	{
	e.printStackTrace();
	}

	return  receivedMessage;
	}	
	public void closeReceiver() {
	if (smsconn != null) {
	try {
	smsconn.close();
	}
	catch(IOException ioe)
	{
	ioe.printStackTrace();
	}
	}
	}


}

وبالاخير وضعت class يحتوي على midlet

import javax.microedition.io.Connector;
import javax.microedition.io.PushRegistry;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.wireless.messaging.Message;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;

public class pushsms extends MIDlet
{
	receiver r;
	Display display;
	Alert alert;
	String s="";
	MessageConnection smsconn;
	Message msg=null;
	//int smsPort=1234;
	public pushsms()
	{
  display=Display.getDisplay(this);
  alert=new Alert("Incomming Message");
  
	}
	public void startApp() {
//   List of active connections.
   String connections[];
  connections = PushRegistry.listConnections(true);
  if (connections.length != 0) {
for (int i=0; i < connections.length; i++) {
  if(connections.equals("sms://:1234")){
  new Thread(){
  public void run(){
  r.openReceiver("1234");
   s=r.receiveMessage();
  }
  }.start();
  alert.setString(s);
  display.setCurrent(alert);
  }
}	}


	protected void pauseApp() {
  // TODO Auto-generated method stub
  
	}
	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  
	}

}

وضعت كل هذا داخل مشروع واحد واضفت جمله داخل الJAD

لا اعرف عندما اقوم بعمل emulateلا اعرف لماذا لاتظهر النتيجه وتقوم بارسال sms

احب ان اعرف لماذا لايوجد هناك استدعاء للsender

مع خالص شكري وتقديري

#5

من اين جئت بهذا الكود الغريب

Mohamed Deraz

#6

أخي العزيز هل من الممكن تطبيق آلية العمل بين السيرفر والكلاينت على الحاسوب دون الحاجة الى موبايل

اي نفس التطبيق السابق الذي كنت تتكلم عنه لكن بدل جهاز الموبايل من قلب البرنامج

اي هل من الممكن تنفيذ نتيجة الكلاينت قبل ان احول ملفي الى جار والسيرفر على الجهاز الحاسوب نفسة؟؟

ارجو الرد

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…