ارسال SMS توسط برنامه و مشکل در برخی از گوشی ها

A.S.Roma

عضو جدید
کاربر ممتاز
با سلام ... .

یک برنامه نوشتم که یک SMS را به یک شماره خاص می فرستد و همچنین SMS می گیرد. در مورد فرستادن و گرفتن SMS مشکلی ندارم. منتهی در برخی از گوشی ها من جمله گوشی خودم (K850i) برنامه در اجرای اول از User درخواست مجوز برای ارسال و دریافت SMS می کند اما در دفعات بعد این درخواست را نمی کند و SMS نمی فرستد.بایستی گوشی را خاموش و روشن کنم تا بتوانم مجددا" یکبار از آن استفاده کنم .
راه حلی برای این مشکل وجود ندارد !؟
از یکی شنیدم باید از Push Register استفاده کنم و اما من تجربه چندانی در J2ME ندارم .

ممنون میشم اگر کسی کمک کند .:gol:
 

Arash_Sn

عضو جدید
با سلام ... .

یک برنامه نوشتم که یک SMS را به یک شماره خاص می فرستد و همچنین SMS می گیرد. در مورد فرستادن و گرفتن SMS مشکلی ندارم. منتهی در برخی از گوشی ها من جمله گوشی خودم (K850i) برنامه در اجرای اول از User درخواست مجوز برای ارسال و دریافت SMS می کند اما در دفعات بعد این درخواست را نمی کند و SMS نمی فرستد.بایستی گوشی را خاموش و روشن کنم تا بتوانم مجددا" یکبار از آن استفاده کنم .
راه حلی برای این مشکل وجود ندارد !؟
از یکی شنیدم باید از Push Register استفاده کنم و اما من تجربه چندانی در J2ME ندارم .

ممنون میشم اگر کسی کمک کند .:gol:

این مشکل شما فکر نمیکنم که به PushRegistry ربطی داشته باشد و احتمالاً مشکل Security Option که مربوط به خود گوشی است میباشد.

آیا شما از SDK مربوط به گوشی استفاده کردید ؟

در رابطه با Push Registry باید عرض کنم که:
در واقع بدلیل اینکه شما از زمان دریافت SMS آگاه نیستید باید برنامه خود را Push کنید تا به این رخداد خارجی پاسخ دهد. این فرایند به دو صورت دینامیک و استاتیک امکان پذیر است.

مثال زیر Push Registry را توضیح میدهد
http://wiki.forum.nokia.com/index.php/CS001387_-_Using_PushRegistry_in_Java_ME

در صورت تمایل برنامه خود را اینجا بگذارید تا با دوستان دیگر بررسی کنیم
 

A.S.Roma

عضو جدید
کاربر ممتاز
ممنون از پاسختون .
خیر من SDK جداگانه استفاده نکردم .
Netbeans رو باز کردم و شروع کردم به نوشتن برنامه .
برنامهخاصی هم نیست. مثلا" میخوام به محض اجرای نرم افزار یک sms به شماره x ارسال شود.

اگر بایستی کار خاصی انجام بدهم ( نصب SKD و ... ) ذکر کنید .
فردا قسمت مربوط به ارسال SMS را اینجا می گذارم .
ممنون .
 

Arash_Sn

عضو جدید
ممنون از پاسختون .
خیر من SDK جداگانه استفاده نکردم .
Netbeans رو باز کردم و شروع کردم به نوشتن برنامه .
برنامهخاصی هم نیست. مثلا" میخوام به محض اجرای نرم افزار یک sms به شماره x ارسال شود.

اگر بایستی کار خاصی انجام بدهم ( نصب SKD و ... ) ذکر کنید .
فردا قسمت مربوط به ارسال SMS را اینجا می گذارم .
ممنون .

توجه کنید که از MIDP2.0 به بعد دسترسی به شبکه برای برنامه هائی که فاقد امضای الکترونیکی هستند با محدودیت انجام میپذیرد . در واقع همانطور که در پست اول عرض کردم این موضوع به Security مربوط میباشد.

در گوشیهائی که با MIDP 2 سازگارند ، سازنده گوشی به شکلی تنظیمات را انجام میدهند که برنامه هائی که در Third-Prty Domain قرار میگیرند باید حتماً دارای امضای الکترونیکی معتبر باشند که توسط شرکتی مانند Verisign قابل تائید باشد.

کلاً Security بر روی موبایل ها در 4 دمین تعریف میشوند که عباتند از 1- Manufacturer Domain که همان سازنده گوشی میباشد. 2- Operator Domain که سرویس دهنده شبکه میباشد. 3- Trusted Third-Party Domain که شامل هر آنکس که مورد تائید باشد 4- Untrusted Third-Party Domain شامل هر آنکس که فاقد امضای الکترونیکی باشد.

چون احتمالاً شما فرآیند Signing را انجام نداده اید برنامه شما در دمین Untrusted قرار میگیرد و گوشی برخی از محدودیت ها را برای آن قائل میشود.

برای اطلاعات بیشتر به این فایل مراجعه کنید.

http://www.forum.nokia.com/info/sw....gned_MIDlet_Developers_Guide_v2_0_en.pdf.html

البته در برخی گوشیها این امکان وجود دارد که کاربر این محدودیت ها را برای Untrusted حذف کند که این موضوع به Security Policy سازنده گوشی مرتبط است.
 

A.S.Roma

عضو جدید
کاربر ممتاز
با توجه به راهنمایی های شما ، فرایند Signing را انجام دادم و در دسته Trusted قرار دادم .
در قسمت API Permissions هم سه مورد زیر را اضافه کردم :
javax.microedition.io.Connector
javax.wireless.messaging.sms.send
javax.wireless.messaging.sms.recieve
اما همچنان مشکل پابرجاست :
کد:
try
        {
//            serverConn = (MessageConnection) Connector.open("sms://:" + _smsPort);
  //          serverConn.setMessageListener(this);
        }catch (Exception ex){ex.printStackTrace();
            m.QuitApp();//Quit Application
        }
قطعه کد بالا فقط یکبار منتظر دریافت sms می شود و از دفعات بعد از برنامه خارج می شود ( دستور catch ) »» در برخی از گوشی ها
 

A.S.Roma

عضو جدید
کاربر ممتاز
چند وقتی میشه مشکل رو حل کردم .
اینجا راه حلش رو میگم تا شاید برای دوستان دیگر نیز مفید باشه.
تمامی مشکل من سر یک خط نوشتن کد بود.
serverConn.Close();
متاسفانه Connection باز رو Close نمی کردم و در برخی از گوشی ها این Connection باز می ماند و مشکل ساز می شد !
 
Similar threads

Similar threads

بالا