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

Cannot get local device bluetooth address and friendly name

مغلق
بدأه eng_3llam في 9 أبريل 2007 · 4 رد · 1,510 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

أنا عاوز اعمل connection بين الموبيل واللاب توب عن طريق j2me app على الموبيل و j2se app على الاب توب

أنا بستخدم ال netbeans5.5 and WTK2.5. أستخدمت ال Bluecove لعمل ال connection وضيفت هذة الجارات للبرنامج BlueCoveJSR82.jar , avetanaObex.jar and jsr082.jar وكذلك ال intelbth.dll الى ال system32 direcotry

البلوتوث الموجودة ف اللاب توب مواصفاتها

اقتباس
bluetooth stack for windows

version v4.00.20(D)

toshiba corporation

bluetooth specification 2.0 ,1.2, 1.1

وأيضا مستخدم xpsp2 علشان ال BlueCove

لما باجى أعمل رن للكود دة

public static void main(String[] args) {

		try{
			LocalDevice localdevice = LocalDevice.getLocalDevice();
			System.out.println("Name:- "+ localdevice.getFriendlyName());
			System.out.println("Bluetooth address is:-  "+ localdevice.getBluetoothAddress());
		}catch(Exception e){
			System.out.println(e);
			e.printStackTrace();
		}


	}

بيكون ال output

Name:- localhost

Bluetooth address is:- 000000000000

وبالتالى كدة مش عارف أجيب ال bt Address for local bt

بحث وجت ان ال windows bluetooth stack بيدعم ال bt اللى انا شغال بيها

http://support.microsoft.com/default.aspx?kbid=841803

فشلت المحاولة دى فحثت مرة اخرى وجدت ان ممكن احل المشكلة دى عن طريق استخدام ال Atinav-package لعمل initialize for bluetooth stack علشان يقدر يتعرف ع البلوتوث اللى انا شغال عليها

ولكن برضة للاسف لم اجد دوال اللى بتعمل initalize for bt stack

فأتمنى منكم ان تحلو معى هذة المشكلة :)

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#2

أخي لم اجرب ال Bluetooth في ال J2SE ولكن من تجربتي في ال J2ME أرى ان هناك خطأ في الكود حيث يجب عمل DeviceDiscovery ومن الأجهزه التي سوف تجدها يمكنك أخذ اللاسم و العنوان اما انت فتاخذ العنوان لجهاز ال Bluetooth الخاص بال laptop وليس الموبايل اعتقد ان الكود شبيه بهذا:

		

		try {
			local = LocalDevice.getLocalDevice();
			agent = local.getDiscoveryAgent();
						if(! agent.startInquiry(DiscoveryAgent.GIAC, this)) {
			;			}
		} catch(BluetoothStateException bse) {
;

		}
#3

أنا هنا بحاول احصل ع اسم البلوتوث وعنوانها بتاعت اللاب توب وليس للموبيلات الموجودة داخل الpiconet بتاعتى

أنا فقط أريد اجيب اسم البلوتوث وعنوانها لان بعد كدة هبدأ اعمل connection بين الموبيل واللاب توب ولكن انا مش عارف أحصل ع ال local device للاب توب

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#4

أخي العزيز أنت لا تحتاج الى عنوان ال laptop لعمل connection لنعتبر ان ال laptop هو ال server كل ما عليك فعله هو فتح connection ثم انتظار ال mobile وهو ما ساعتبره ال client بعمل connection معه :

الكود في ال server يجب ان يكون شبيه بهذا :

private OutputStream out = null;
	private String connectionURL = "btspp://localhost:393a84ee7cd111d89527000bdb544cb1;"
				+ "name=RFCOMM Server";
private InputStream in = null;
private StreamConnectionNotifier server = null;
private StreamConnection conn = null;

		new Thread() {

			public void run() {
				try {

					local = LocalDevice.getLocalDevice();
					local.setDiscoverable(DiscoveryAgent.GIAC);
				} catch(BluetoothStateException e) {

					// Error Handling
				}

				try {

					server = (StreamConnectionNotifier) Connector.open(connectionURL);

					conn = server.acceptAndOpen();
					in = conn.openInputStream();
					out = conn.openOutputStream();


				} catch( IOException e1) {

					// Error Handling
				}
			}
		} );

هكذا تكون فتحت ال connection في ال server والان يجب عمل device discovery ثم service discovery في ال client وهنا تستطيع اخذ اسم وعنوان ال server من ال devices التي وجتها اثناء البحث

#5

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

السلام عليكم

LocalDevice.getLocalDevice();

من خلال السطر دة معاى ال local bt وبالتالى اقدر اقول لل بلوتوث DiscoveryAgent.GIAC حيث تعنى

اقتباس
Places the device into inquiry mode.

*@param 1st argument is the type of inquiry to

* complete mean that The inquiry access code for

* General/Unlimited Inquiry Access Code */

انا مش معاى ال local bt ازاى هعمل الخطوة دى ؟؟؟؟؟ و ازاى هعمل connection with client device وانا مش معاى ال local bt !!!!!!!!!!! :blink:

علشان اتاكد ان هل انا معاى ال local bt حبيت أطبع عنوانها. مجرد إختبار ان انا معاى ال local bt handle

فعلا انا مش محتاج العنوان ف اى حاجة ولكن مجرد اختبار كما قلت

ولكن

الحمد لله تم حل المشكلة :rolleyes: (دة مجرد استنتاج منى وارد أن يكون خطأ)

الشمكلة ف أى بقى ؟؟

أنا شغال بلوتوث نوعها توشيبا وال window bt stack بيدعم تلك البلوتوث ولكن انا كنت مسطب تعريف البلوتوث اللى جاى معاها ع اسطوانة فكدة بقت widcomm يعنى ال windows bt stack مابيدعمهاش لما زميلى شال تعريفها وعمل شوية configurations فى الcontrol panel كدة بقى ال windows bt stack بيدعمها وبالتالى لما جيت أطبع عنوان البلوتوث انطبع لانى انا كدة بقى معاى ال local bt فى البرنامج بتاعى واقدر اتحكم فيها

والله اعلم:)

شكرا لك ع الاهتمام:)

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

هذا الموضوع مغلق.

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

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

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

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

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