- fazel نوشته است:
- [b]
با سلام
برنامه ای نیاز دارم که کار ذخیره کردن اس ام اس ها رو روی مموری کارت
در گوشیهای سونی اریکسون مثل دبلیو 810 و کا 750 بتونه انجام بده
اگه برنامه نوشته شده ای هست ممنون میشم راهنمائی کنید
همچنین دوست دارم خودم هم این برنامه را با جاوا شروع کنم
اگه دوستان برای نوشتن این برنامه راهنمائی کنن خیلی ممنون میشم
با تشکر قبلی
سلام دوست من.
به نظر من شما چند مشکل اساسی دارید.
اولا با api ها و توابع فعلی موجود رایگان شما اجازه ی
دسترسی به برخی امکانات بومی گوشی رو ندارید مثل
دفترچه تلفن و از جمله sms های دریافت شده.
دوما موبایل هم مانند کامپیوتر کانالهای ارتباطیش بصورت پورت هست.
مثلا برای دریافت Sms شما باید یک پورت رو باز کنید و از اون منتظر یک دیتا باشید.
- كد:
-
Connector.open( "sms://:50050");
میبینید که شماره ی پورت ها می توانند متنوع باشند.مثلا در این مثال 50050
انتخاب شده.طبیعتا موبایل هم یک پورت به خود اختصاص داده و منتظر دریافت پیام است
حالا چند مشکل داریم: یک پیام با همان شماره ی پورتی که ارسال می شود، منتظر دریافت پیام است.مثلا اگر پیام با شماره ی پورت 10 ارسال شد با همان شماره پورت باید دریافت شود.
معمولا این شماره ی پورت در برنامه ی ارسال sms که بصورت بومی روی گوشی هاست ،یکسان هست(معمولا چند پورت را به خود اختصاص میدهند) چه هنگام ارسال و چه هنگام دریافت.یعنی اگر فرض کنیم شماره پورت ما 10 باشد تمام گوشی ها از پورت 10 پیام میفرستند و از پورت 10 هم پیام میگیرند.حال این پورت توسط برنامه گوشی دائما باز است و برای دسترسی به ان توابع فعلی این اجازه را نمیدهند.(البته شاید توابعی وجود داشته باشد که بصورت تجاری عرضه میشود).
با این توضیحات ما در مرحله ی اول مانده ایم.یعنی دریافت sms.شاید اگر دقت نکرده باشید این سوال پیش بیاید که اگر امکان دریافت sms توسط برنامه ای که بومی نیست وجود نداشته باشد چرا api های ان موجود اند؟در جواب باید بگویم من همچین حرفی نزدم:-)
شما می توانید یک پیام را دریافت کنید اما....
با پورت اختصاصی که خودتان تعریف میکنید یعنی همان کدی که در بالا نوشتم.
مسلما با این توضیحات به این نتیجه میرسیم که طرفی که پیام را ارسال می کند
برای اینکه پیامش با برنامه ای که خود شما نوشته اید دریافت شود نمی تواند از
برنامه بومی خود موبایل استفاده کند!!
برای اینکار در موبایل مقابل برنامه ای برای ارسال sms با همان شماره ی پورتی که شما برای گیرنده ی خود تعریف کرده اید باید نوشته شود.
فکر کنم کمی گنگ نوشتم ولی مخلص پیام بسیار ساده است.
با این توضیحات شما برای استفاده از برنامه ای مد نظرتان است باید یک برنامه خواندن sms داشته باشید که همیشه در بکگراند موبایل منتظر پیام از پورت شماست هست و در ثانی کسانی که به شما اس ام اس میفرستند باید از یک برنامه ی خاص که شماره ی پورت شما را دارد استفاده کنند که از این طریق برنامه فاقد هرگونه ارزشیست.
حال شاید شما یک برنامه برای ارسال و یک برنامه برای دریافت بنویسید.
پیامی را با برنامه ی ارسالی که خودتان نوشتید ارسال کنید ولی برنامه در گوشی مقصد که برنامه را ندارد دریافت شود و بعد در اینجا پست بدهید و بگویید مرد حسابی دو ساعت الکی برای ما صغری کبری چیدی :-)
در جواب می گویم که درست است شما پیام را با یک شماره ی پورت دیگر فرستایدد ولی موبایل طرف مقابل که برنامه ی شما را نداشت آن را دریافت کرد. چون برنامه ای برای دریافت پیام با شماره ی پورت ارسالی وجود نداشت پیام با اولی پورت بازی که وجود دارد دریافت می شود.
به همین سادگی.....
به نظر من اگر اجباری بر انجام این پروژه ندارید خود را درگیر نکنید ولی اگر در انجام ان مصرّید ناامید نشوید تمام عرایض بنده اندر توابع تعریف شده و ارائه شده در java.sun هست.
برنامه هایی وجود دارند که همه ی این محدودیت ها را بر طرف کرده اند ولی لم کار را لو نداده اند.
بنده یک راهکار را برای دسترسی به پیامک های رسیده شرح دادم ان هم دریافت پیامک بوسیله برنامه خود ما بود.راهکار دوم هم که در اول اشاره کردم دسترسی به اینباکس بود
که ان هم نیتیو هست و اجازه دسترسی به ان نیست.ولی اگر بتوانید نام رکورد ی که پیامک ها
در ان ذخیره میشوند را بیابید شاید بتوانیم کاری بکنیم.(این امکان در برنامه های هک بلوتوثی امده ولی باز هم لم کار معلوم نیست).
این نکته را هم باید بگویم هیچ اصراری بر درستی سخنانم ندارم چون صرف خالصنتیجه ی تجربه ی بنده و تحقیق قبلی در این مورد بود .
حال همه چیز بستگی به شما دارد قبل از هر اقدامی لطفا
درباره ی سطح معلومات و تجربه ی خود در برنامه نویسی موبایل بنوسید تا
بهتر بتوانیم بهم کمک کنیم .
با تشکر