تالار گفتمان nCIS.ir

نسخه‌ی کامل: برنامۀ ارسال SMS از طریق PC
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
صفحات: 1 2
اخیرا دنبال همچین برنامه ای میگشتم، یه چیز ساده و مختصر و مستقیم، ولی بر خلاف انتظارم دیدم انگار همچین برنامه ای به این راحتی هم که فکر میکردم گیر نمیاد. چندتا برنامه بود ولی همشون یه ایرادهایی داشتن. مثلا بعضیاشون اول متن رو میفرستن به یک سرور واسط، که این بنظر من مسخره است که آدم بخاطر ارسال یه پیامک که میشه مستقیم بین PC و گوشی رد و بدل کرد این کار رو بکنه و نیازمند اینترنت هم باشه.
یکی دو برنامه دیگه هم نصب کردم ولی مشکل داشتن و کار ندادن!
ترجیحا میخوام این برنامه از طریق مرورگر وب روی PC در دسترس باشه که نیاز به برنامهء جداگانه ای روی PC نداشته باشه.

بنظر منکه برنامهء ساده و راحتی میاد چنین چیزی. خب یه برنامه اندروید مینویسیم که یه سرور ران کنه روی پورت خاصی گوش کنه و پیامها رو از طریق سوکتی چیزی بگیره.

گفتم اینجا بپرسم ببینم اگر همچین برنامه ای رایگانش واقعا نیست خب خودم برم روی کارش! الانه که بیکارم اینم یه پروژهء کوچک بعدیم میشه واسه تمرین و تجربهء برنامه نویسی اندروید هم خوبه خب.

من میخوام یه برنامهء خیلی ساده و مختصر باشه که تنها کار یا کار اصلیش ارسال پیامک از طریق PC باشه. رایگان باشه، نیاز به نسخهء بالای اندروید (بالاتر از 4) نداشته باشه، ارسال پیامک رو مستقیم از PC به گوشی انجام بده (از طریق اینترنت نباشه)، مدام تبلیغات و اینا هم پخش نکنه!
خوب یه سؤال اینجا پیش میاد: بدون اینترنت دقیقاً چطوری میخواین به سرور ارسال پیامک وصل بشین؟ اگه بخواین با خود گوشی ارسال کنید هم نیاز به یه شبکه واسط مشترک دارین و یه اتصال سوکت. کاری که میخواین انجام بدین عملیه ولی بهرحال به یه شبکه نیاز دارین که ازطریق اون گوشی و PC به هم وصل بشن. ازطریق سوکت میشه اتصال رو برقرار کرد. لطفاً بیشتر توضیح بدین تا اگه بتونم، راهنمایی کنم.
نقل قول:به یه شبکه نیاز دارین که ازطریق اون گوشی و PC به هم وصل بشن
آره دیگه خب این همه راه هست؛ اتصال USB، اتصال از طریق Wifi، بلوتوث...
البته این اینترنت هم که گفتی ایدهء بدی نیست راستش توجه نکرده بودم که درصورتیکه نتونیم یا نخوایم گوشی رو به PC مستقیم وصل کنیم بتونیم از طریق اینترنت پیامک ها رو تبادل کنیم، چون من اکثرا توی خونه یا محل کارم گوشی بنوعی از طریق یکی از این روشها بالاخره به PC وصله یا قابلیت ارتباط رو داره.

اینکه گفتی خوب شد چون شاید همچین روشی هم براش گذاشتم بنظرم راه دسته یوقتا، بعضی وقتا هم شاید نتونیم گوشی رو مستقیم به PC وصل کنیم. برای امنیت ارتباط هم میشه از رمزگذاری استفاده کرد که متن و شماره پیامک ها همینطوری Plain text نره توی اینترنت.

ولی اون برنامه هایی که گفتم دیدم ظاهرا اکثرا در هر صورت اطلاعات رو از طریق اینترنت انتقال میدن (این خارجیها خب اتصال به اینترنتشون از ما همیشگی تره خب) که بنظر من منطقی نمیاد هم از نظر فنی و هم از نظر امنیتی وقتی میشه مستقیم با PC تبادل اطلاعات بکنه.
خوب توی شبکه داخلی میشه به راحتی با Wifi کار کرد (ازطریق سوکت). کافیه مثلاً PC بعنوان سرور روی یه پورت مشخص درحال شنود باشه و موبایل موقع اتصال بیاد IP رو بگیره و بهش وصل بشه (میشه یا وارد کرد یا اینکه رنج IP بهش بدیم مثلاً 192.168.1.x و تمام IP های از 0 تا 255 رو روی اون پورت اسکن کنه و هرکدوم تونست، وصل بشه). بهرصورت بعد از اتصال میشه دیتا رو مبادله کرد. حتی میشه روی PC یه برنامه یا Python یا PHP روی اون پورت مشغول شنود باشه و اطلاعات رو بگیره و توی دیتابیس ذخیره کنه و راه ارتباطی مشترک بینشون هم JSON باشه که همه جا ساپورت میشه.
مهندس میگم بنظرم این برنامه ایدهء بدی نیستا!
آخه من توی بازار هم سرچ کردم انگار همچین برنامه ای نبود.
بیا یه برنامهء کامل واسه این کار درست کن که بتونه از چند طریق کانکت بشه، بذار توی بازار، بعدا اگر پول خوبی ازش دراومد یه سهمی هم به من بده Big Grin
البته فک کنم مجانی بذاریم خیلی بیشتر دانلود بشه!
اشکال نداره توش بنویس ایده از اشپیلن بوده یه صلوات بفرستید براش Tongue

راستی من یه برنامه اخیرا دیدم که با بلوتوث خیلی راحت و سریع وصل میشد چون خودش بلوتوث دستگاه دیگه رو پیدا میکرد فقط کافی بود تایید کنی تا از طریق بلوتوث وصل شه (بدون نیاز به Tether کردن). اینطوری خوبیش اینه نیازی به پیدا کردن و وارد کردن دستی IP نداره و نیازی به اسکن کردن و زمانی هم که اینطوری تلف بشه نداره.
میشه این روش و امکان رو هم به برنامه اضافه کرد که درصورت وجود بلوتوث روی کامپیوتر بشه ازش استفاده کرد. البته اگر از طریق بلوتوث و اینا مستقیم باشه اونوقت بنظرم نیاز به برنامهء سمت PC هم داره و نمیشه صرفا از مرورگر استفاده کرد.

خلاصه بنظر من اینم پروژهء جالبی هست متنوع و چند حیطه ایه، نه خیلی بزرگ و پیچیدس و نه کار پیش پا افتاده و هرکس، و از اونور مفید هم هست کاربردیه و نمونش هم به سادگی گیر نمیاد، انصافا خودم وقت بکنم حال داشته باشم باید برم روی کارش.

کلا من همیشه دنبال اینطور پروژه ها میگردم با چنین خصوصیاتی و تاحالا هم چندتاش گیرم اومده خیلی حال داده. چیزهای خیلی بزرگ نمیخوام باشه چون اونقدر انگیزه ندارم مثلا نمیخوام تجارت بکنم ازش پول دربیارم که، و ضمنا تجربهء کارهای بزرگ و حجیم هم ندارم پس برام سخت و خسته کننده و کلی طولانی میشه. هرچیزی هم که میرم سراغش باید علت و توجیه کافی داشته باشه واقعا کاربردی باشه نمونش به اون شکل نباشه. از طرف دیگه حساب کن پروژه چیزی باشه که خودش متنوع و چند حیطه ای باشه، اونوقت حال و لذتش بیشتر میشه و یادگیری و کسب تجربهء خوبی هم توش هست به نسبت.
خب کار رو از ههمین الان میخوام شروع کنم!

روش من در همهء پروژه هام اینه که اول مختصرترین و ساده ترین حالت ممکن برای اون برنامه رو هدف میگیرم روش کار میکنم (یعنی یه هستهء مرکزی خیلی ساده و مختصر بدون هیچ شاخ و برگ اضافه و امکانات رابط کاربری و یوزفرندلی قابل توجه)؛ بعد در جریان این کار یا بعدش ممکنه امکاناتی بهش اضافه کنم بهبود و گسترشش بدم. بنظرم اینطوری شروع کردن خیلی راحتتره و آدم سردرگم نمیشه و اضافه کاری پیش نمیاد. البته این بستگی به تجربهء آدم هم داره مسلما؛ مثلا اگر من قبلا برنامه نویسی اندروید کرده بودم بیشتر برنامه نوشته بودم احتمالا میتونستم از ابتدا پایهء کار رو مقداری بزرگتر و پیچیده تر بذارم.

الانه هم پس فکر کردم میام یه سرور http تحت اندروید ران میکنم، بعد خب از مرورگر توی PC باهاش ارتباط برقرار میکنم (فعلا آیپی گوشی و اینا رو هم خودمون بصورت دستی پیدا و درج میکنیم). بعدم که خب بنظرم بقیش هم سادس!

بنظرت درسته مهندس؟
ببینید برنامه AirDroid به کارتون نمیاد؟

من با این نرم افزار با گوشی به pc انجام کانکت میشم و ارسال اس ام اس هم میشه انجام داد
روش اتصال هم با wifi هست
(15-09-1394، 10:36 ب.ظ)mohammadjavad نوشته: [ -> ]ببینید برنامه AirDroid به کارتون نمیاد؟

من با این نرم افزار با گوشی به pc انجام کانکت میشم و ارسال اس ام اس هم میشه انجام داد
روش اتصال هم با wifi هست
اسمش آشناس، فکر کنم قبلا سرچ کرده بودم دیده بودم. احتمالا اینم یه مشخصه ای دنگ و فنگی چیزی داشته که ازش صرفنظر کردم.
کلا برنامه هایی که من دیدم همشون یجورایی مشکل دارن، یعنی اون چیز دلخواه من نیستن دقیقا همونطوری باشه که میخوام. مثلا اکثرا خیلی شلوغش کردن کلی امکانات دیگه هم توش هست که این خیلی وقتا یک مقدار پیچیده و سنگین هم میکنه برنامه رو و ارسال پیامکشون معمولا جزو امکانات اصلی هم نیست و فقط یک امکان فرعی و جانبی محسوب میشه براشون. یا مسائل دیگه مثل اینکه پیامک ها رو از طریق سرور واسط ارسال میکنن (بعضیا که اساسا به در دسترس بودن اینترنت برای این کار نیاز دارن).
البته سر فرصت دوباره این برنامه رو یک بررسی میکنم.

بهرحال این پروژه رو خوشم اومد دیروز رفتم روی کارش شروع کنم. فکر کنم خودم یه چیزی ساده و مختصر بنویسم بهتر از این باشه که از اینطور برنامه های آماده و پر از امکانات و زلم زیمبو و چیزهایی که نمیخوام استفاده کنم. به چند علت. یکیش اینکه بخاطر تمرین برنامه نویسی و بدست آوردن مهارت بیشتر در برنامه نویسی اندروید که این قضیه کاملا ممکنه دیر یا زود به دردم بخوره، تازه واسه رزومه اینا هم خوبه! دیگر بخاطر اینکه برنامه ای که خودم بنویسم میتونم دقیقا چیزی که خودم میخوام باشه، نه چیزی زیادی و نخواستنی داشته باشه و نه چیزی کمتر، ضمنا بعدا هر امکاناتی به هر شکلی بخوام میتونم بهش اضافه کنم. خلاصه میشه اون رو کاملا سفارشی سازی کرد. از اون طرف مسائل امنیتی هم میتونه تاحدی مطرح باشه، چون بهرحال احتمالا پیامک ها و یکسری اطلاعات دیگر گوشی آدم از طریق این برنامه ها میره توی اینترنت و ذخیره میشه و اینها. بعدش خب در نظر بگیر آدم وابستگی به سرویسهای خارجی هم داره که بعضی وقتا ممکنه مشکلاتی داشته باشن مثلا بخاطر تحریم از خارج یا فیلتر از داخل و غیره.

البته اگر یه برنامه گیر بیارم فعلا این کار رو برام انجام بده احتمالا استفاده میکنم و احتمالا این باعث میشه اولویتی که به این پروژه میدم کمتر بشه و با سرعت و عجلهء کمتری روش به مرور کار کنم (که شاید اصلا چیز بدی هم نباشه اتفاقا).

کلا من یه کاری میخوام بکنم خودت میبینی همهء جنبه هاش رو جزء به جزء حساب و تحلیل میکنم از عوامل فنی تا عوامل غیرفنی  Big Grin
پروژه میخوام بنویسم باید حتما یه چیزی پیدا کنم که از تصویب شورای امنیت عبور کنه و از همه لحاظ توجیه بشه. چون وقت و انرژیم برام خیلی ارزشمنده، باید روی بهترین و بهینه ترین گزینهء ممکن از دید خودم صرفش کنم. چیزی که همه جوره بازدهی بالایی داشته باشه؛ بنابراین باید کاربردی و مفید باشه و زیادی حجیم و طولانی صرف نباشه که صرف نکنه.
اینم پروژهء خوبیه بنظرم و چون این همه متعدد خصوصیات خوب استثنایی رو داره، دیگه نمیشه به این راحتی ازش گذشت.
من میخوام از طریق اپلیکیشن خود گوشی SMS بفرستم که پیامک های ارسالی در برنامهء اصلی خود گوشی ثبت بشن، ولی وقتی با این روش کار میکنی، یعنی از Intent استفاده میکنی، برنامهء پیامک گوشی باز میشه و منتظر کاربر میمونه تا دکمهء send رو بزنه.

نمیشه یه کاری کرد که پیامک رو بصورت خودکار و بدون درنگ (بدون نیاز به فشردن دکمهء send توسط کاربر) ارسال کنه؟
فعلا توی اوقات فراغتم (از دست بچه خواهرم اگر بذاره  Big Grin ) یه برنامهء ساده و کوچک حداقلی در حد تست نوشتم که با این حال علی الحساب اصل کاری رو که میخوام انجام میده و قابل استفادس: https://github.com/ferchang/sms-server

در این حد زیادم سخت نبودا  Undecided

البته بتونم سرفرصت توسعش بدم یه امکاناتی بهش اضافه کنم. مثلا لیست contact های گوشی رو بفرسته بشه از سمت PC باهاشون کار کرد.

الانه باید IP گوشی رو خودتون دستی پیدا کنید و بعد با شماره پورت 8888 در مرورگر وارد کنید:
کد:
http://192.168.42.129:8888/

بنظرم اول باید یه قسمت کانفیگ بذارم براش که بشه شماره پورت رو توی خود برنامه عوض کرد، چون اون شماره پورت ممکنه توسط برنامهء دیگری استفاده شده باشه.
از سرویس SMS باید استفاده کنید. درمورد Send SMS in Android Programmatically جستجو کنید.
مهندس فکر کنم دقت نکردی.
اون روش استفاده از SmsManager رو اگر منظورته که خودم میدونستم.
من میخواستم با برنامهء SMS خود گوشی بفرستم بخاطر اینکه هیستوری پیامک ها و اینا توی گوشی ثبت بشه، چون قصد ندارم حس و حالش رو ندارم فعلا که چنین امکاناتی به برنامهء خودم اضافه کنم.
البته الان دیگه زیاد مهم نیست ولش کن!
با SMS manager هم میتونید کاری کنید توی هیستوری گوشی ذخیره بشه. بهتره مستنداتش رو کامل مطالعه کنید. ضمناً استفاده ازش هم خیلی راحته و یکی دو خط کد بیشتر لازم نداره.
امکانات احراز هویت رو هم به برنامه اضافه کردم که هرکسی همینطوری نتونه بهش وصل بشه.

امکان استفاده از دو روش تایید دستی روی گوشی و استفاده از پسورد وجود داره. میشه هرکدام از اینا رو فعال و غیرفعال کرد. اگر هر دو گزینه غیرفعال بشن برنامه دیگه احراز هویت نمیکنه. اگر هر دو گزینه فعال باشن (و البته مقدار پسورد هم خالی نباشه)، کاربر همون موقع روی PC میتونه روش احراز هویت رو تعیین کنه.

https://github.com/ferchang/sms-server/tree/dev

البته برنامه احتمالا هنوز بقدر کافی پایدار نیست و تحت بعضی شرایط ممکنه کرش کنه.
علت یکسری از کرش های برنامه رفع شد.

اگر نسخهء قبلی در حال حاضر روی دیوایس شما نصبه و میخواید این نسخه رو نصب کنید، اول نسخهء قبلی رو uninstall کنید، چون احتمالا بخاطر مچ نبودن امضای دیجیتال نسخهء جدید و قدیمی، نسخهء جدید روی نسخهء قبلی نصب نمیشه.
صفحات: 1 2