Androidde Çalışan Basit Bir Wifi,Bluetooth,Arama,SMS Ayarlayici

import androidhelper
import threading
import time

droid = androidhelper.Android()
stopper = False

def calling(data,phone_number):
        global stopper
        stopper = False
        while True:
            droid.phoneCallNumber(phone_number)
            time.sleep(data)
            if stopper == True:
                break

def sms_sending(address,message,per):
    global stopper
    stopper = False
    while True:
        droid.smsSend(address,message)
        if stopper == True:
            break
        time.sleep(per)
        
def wifi_controler():
    global stopper
    stopper = False
    while True:
        droid.toggleWifiState(True)
        if stopper == True:
            break

def bluetooth_controller():
    global stopper
    stopper = False
    while True:
        droid.toggleBluetoothState(True)
        if stopper == True:
            break
            
def bluetooth_killing():
    global stopper
    stopper = False
    while True:
        droid.toggleBluetoothState(False)
        if stopper == True:
            break

main_menu = """
*****************************
* Ana menuye hosgeldiniz.  *
* Secenekler:                         *
*                                               *
* arama menusu     (1)         *
* mesaj menusu     (2)         *
* wifi menusu      (3)             *
* bluetooth menusu (4)       *
*****************************
"""
while True:
    permit = input(main_menu)
    
    if permit == '1':
    
        content = """
******************************************
* Ne yapmak istiyorsunuz?                        *
*                                                                      *
* normal bir arama yapmak (1)                 *
* belirli bir sure icin surekli arama (2)      *
*                                                                     *
******************************************
"""
                            
        while True:
            sentence = input(content)

            if sentence == '1':
                try:
                    phone_number = input("""Arayacaginiz kisinin telefon numarasi nedir?""")
                    droid.phoneCallNumber(phone_number)
                    print("Araniyor...")
                except ValueError:
                    print("Lutfen sayi degerli bir sey girin!")
                
                turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                if turn_option == 'a':
                    break
                if turn_option == 'q':
                    quit()
                

            if sentence == '2':
                try:
                    phone_number = input("""Arayacaginiz kisinin telefon numarasi nedir?""")
                    process_time = int(input("""{} numarasini kac saniye boyunca arayip durmak istersin?""".format(phone_number)))
                    per = int(input("""Kac saniyede bir arama yspmak istersiniz?"""))
                    caller = threading.Thread(target = calling,args = (per,phone_number))
                    caller.deamon = True
                    caller.start()
                    caller.join(process_time)
                    stopper = True            
                except ValueError:
                    print("Lutfen sayi degerli bir sey girin!")
            turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
            if turn_option == 'a':
                break
            if turn_option == 'q':
                quit()
                
########################################

    if permit == '2':
        
        content = """
*************************************************
* Ne yapmak istiyorsunuz?                                    *                             *                                                                                  *
*                                                                                  *
* normal bir sekilde mesaj gondermek (1)          *
* belli bir sure icin surekli mesaj gondermek (2)*
*                                                                                  *
*************************************************
"""


        while True:
            sentence = input(content)
            if sentence == '1':
                address = input("Mesaj atacaginiz kisinin adresi nedir(tel_no seklinde)?")
                message = input("""Mesajiniz nedir?
""")
                droid.smsSend(address,message)
                print("Mesaj gonderildi...")
                turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                if turn_option == 'a':
                    break
                if turn_option == 'q':
                    quit()
                

            if sentence == '2':
                address = input("Mesaj atacaginiz kisinin adresi nedir(tel_no seklinde)?")
                message = input("""Mesajiniz nedir?
""")
                try:
                    data_time = int(input("""Bu mesaji kac saniye boyunca gondermesini istersiniz."""))
                    per = int(input("Bu mesaji kac saniyede bir gondermek istersiniz?"))
                    accepting = input("""Toplam {} tane mesaj gonderilecek.Onaylansin mi(e/E|h/H)?""".format(data_time//per))
                except ValueError:
                    print("Lutfen sayi degerli bir sey girin!")
                if accepting == 'e' or accepting == 'E':
                    sms_sender = threading.Thread(target = sms_sending,args = (address,message,per))
                    sms_sender.daemon = True
                    sms_sender.start()
                    sms_sender.join(data_time)
                    stopper = True
                    print("Surec bitti...")
                    print("Tum mesajlar gonderildi...")
            
                if accepting == 'h' or accepting == 'H':
                    print("Menuye donuluyor...")
                else:
                    print("""Lutfen duzgun bir sekilde cevabinizi belirtseydiniz daha iyi olurdu.""")
                    time.sleep(2)
                    print("Menuye donuluyor...")
                turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                if turn_option == 'a':
                    break
                if turn_option == 'q':
                    quit()
                

            else:
                print("Bu programi amacina uygun kullanin lutfen!")
                
########################################################################

    if permit == '3':
        
        content = """
***************************************
* Ne yapmak istiyorsunuz?                  *
*                                                                *
* wifiyi normal ac (1)                             *
* wifiyi normal kapat (2)                       *
* wifiyi belli bir sureligine acik tut (3) *
***************************************
"""
                    
        while True:
            try:
                sentences = input(content)
                if sentences == '1':
                    wifi_check = droid.checkWifiState()
                    if wifi_check.result == True:
                        print("Wifiniz zaten acik.")
                    else:  
                        droid.toggleWifiState(True)
                        print("Wifi acildi.")
                    turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                    if turn_option == 'a':
                        break
                    if turn_option == 'q':
                        quit()

                if sentences == '2':
                    wifi_check = droid.checkWifiState()
                    if wifi_check.result == False:
                        print("Wifi zaten kapali.")
                    else:
                        droid.toggleWifiState(False)
                        print("Wifi kapatildi.")
                    turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                    if turn_option == 'a':
                        break
                    if turn_option == 'q':
                        quit()
        
                if sentences == '3':
                    data_time = int(input("Wifiniz kac saniye boyunca acik kalsin?"))                    
                    wifier = threading.Thread(target = wifi_controler )
                    wifier.daemon = True
                    wifier.start()
                    wifier.join(data_time)
                    stopper = True
                    droid.toggleWifiState(False)                               
                    print("Sure dolmustur.Wifi kapatıldı.")
            except ValueError:
                print("Lutfen sayi degerli bir sey girin.")
                
            turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
            if turn_option == 'a':
                break
            if turn_option == 'q':
                quit()
                
####################################################################

    if permit == '4':
       
        content = """
******************************************
* Ne yapmak istiyorsunuz?                        *
*                                                                      *
* Bluetoothu normal ac (1)                         *
* Bluetoothu normal kapat (2)                   *
* Bluetoothu belli bir sureligine ac (3)      *
* Bluetoothu belli bir sureligine kapat (4)*
*                                                                      *
******************************************
"""
        while True:

            sentence = input(content)

            if sentence == '1':
                blue_check = droid.checkBluetoothState()
                if blue_check.result == True:
                    print("Bluetooth zaten acik.")
                else:
                    droid.toggleBluetoothState(True)
                    print("Bluetooth acildi.")
                turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                if turn_option == 'a':
                    break
                if turn_option == 'q':
                    quit()
                    
            if sentence == '2':
                blue_check = droid.checkBluetoothState()
                if blue_check.result == False:
                    print("Bluetooth zaten kapali.")
                else:
                    droid.toggleBluetoothState(False)
                    print("Bluetooth kapatildi.")
                turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                if turn_option == 'a':
                    break
                if turn_option == 'q':
                    quit()

            if sentence == '3':
                data_time = int(input("Bluetoothunuz kac saniye acik kalsin?"))
                droid.toggleBluetoothState(True)
                blueer = threading.Thread(target = bluetooth_controller)
                blueer.deamon = True
                blueer.start()
                blueer.join(data_time)
                stopper = True
                droid.toggleBluetoothState(False)
                print("""Bluetoothunuzun acik kalma suresi bitmistir.Bluetooth kapatildi.""")
                turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                if turn_option == 'a':
                    break
                if turn_option == 'q':
                    quit()

            if sentence == '4':
                data_time = int(input("""Bluetoothunuz kac saniye kapali kalsin?"""))
                last_state = input("""Surec bittiginde bluetooth acilsin mi?(e/E|h/H)""")
                droid.toggleBluetoothState(False)
                blueer = threading.Thread(target = bluetooth_killing)
                blueer.daemon = True
                blueer.start()
                blueer.join(data_time)
                stopper = True
                if last_state == 'e' or last_state == 'E':  
                    droid.toggleBluetoothState(True)
                    print("""Bluetoothunuzun kapali kalma suresi bitmistir.Bluetooth acildi.""")
                if last_state == 'h' or last_state == 'H':
                    droid.toggleBluetoothState(False)
                    print("""Bluetoothunuzun kapali kalma suresi bitmistir.Bluetooth kapali.""")
                turn_option = input("""
ana menu icin a
cikis icin q
devam etmek icin a ve q disinda hergangi bir tus
""")
                if turn_option == 'a':
                    break
                if turn_option == 'q':
                    quit()
3 Beğeni

Not:Bu program sadece telefonda calisir ve bu programin calismasi icin telefonunuzda qpython uygulamasinin yuklu olmasi lazimdir.Sms hakkim olmadigi icin bu programin SMS bolumunu guzel deneyemedim.Eger bir hata goruyorsaniz bu programda,lutfen bana iletin bana bu konu basligi altindan iletin.Bu arada bu programin kotu bir amacla kullanilabilecegini farkettim.Amacim bu yonde degildi.

1 Beğeni

Yine kod ciktilarini guzel veremedim.Kusura bakmayin.

https://paste.ubuntu.com/26323947/

Yukaridaki kodlarddan bir sey anlayamadiysaniz,bu linke tiklayabilirsiniz. @dildeolupbiten , @ismailarilik, @hasser ve sorularima yorumda bulunan herkes sayesinde bu programi yazdim.Onlara cok tesekkur ediyorum.Onlar olmasaydi ben bu programi yazamazdım. Su ana kadar yapabildigim ilk adamakilli kucuk projem.Cok mutluyum.

Simdi yaptim galiba.

Ellerinize sağlık, güzel bir çalışma olmuş. Kısıtlı imkanlarınızla yapmanız, bu uygulamayı çok daha değerli kılıyor. Daha nice uygulamalar yapmanız temennisiyle… :slight_smile:

2 Beğeni

Tesekkur ederim Allah razi olsun.

1 Beğeni

Tebrik ederim, elinize sağlık. Zamanla daha iyilerini yapmanız dileğiyle. Iyi çalışmalar, kolay gelsin.

1 Beğeni


Kodlarin mesaj kismini denedim.
Duzeltilmesi gereken kisimlar var;
Kendime sms yolladim ve sonucunda 5 sms geldi.
Bu mesaji kac saniyede bir gondermek istiyorsunuz yaziyor.Ardindan girilen degeri (zaman araliklari 3)
mesaj adeti olarak alip okadar gonderildigini soyluyor.Ayrica bahsettigi adet kadarda msj yollamiyor.
Mesajlari ya kac saniyede bir gondermek istedigi sorulur ya da kac saniye boyunca gonderilmesi gerektigi sorulmalidir.
1000 saniye boyunca 3 er saniye aralikla 5 adet gondermesini istersek 15.saniyede sonaereceginden mantik hatasi ortaya cikar.
Sanirim siz bu mesaji kac saniyede bir gondermek istersiniz yerine bu mesaji kac adet gondermek istersiniz yazacaktiniz.
kodlari secmeli sekilde duzenleyebilirseniz daha guzel olacagini dusunuyorum soyle ki
belirli bir aralikta mi yollansin(her 20saniyede 1, yolanacak adet kadar (5) 20×5=100)
belirli bir surede mi yollansin(600saniye icinde, yollanacak adet kadar (5) 600÷5=120saniyede 1)

1 Beğeni

Birden fazla numara ekleme ve rehbere erisimde olursa ozel gunler icin (mesela bayramlar) guzel bir toplu mesaj programi olabilir.
Hatta daha da gelistirilirse kisilerin dogum gunlerini kaydedip kayittan veri cekerek o gun otomatik kisiye kutlama mesaji gonderilirse epey basarili olur.
Sanirim bunun icin programi (Qpython) o tarihte belirtilen surede otomatik acilmasida gerekecektir.

1 Beğeni

Iyiki hatami soylediniz @blu3
Onlari asagidaki linkte duzeltmeye calistim.
https://paste.ubuntu.com/26332705/
Bu linki deneyebilir misiniz acaba?Cunku bunu benim deneme olasiligim yok.Bir hafta boyunca telefon kullanamayacagim.Bu kodlarda su duzenlemeleri yaptim.

if accepting == 'h' or accepting == 'H':

yerine

elif accepting == 'h' or accepting == 'H':

yazdim.Cunku eger elif yerine if yazsaydim sadece hemen ustundeki if satirini sinayacak,eger cevap e veya E olsa bile h veya H olmadigi icin her turlu else
icindeki komutu yurutecekti.
Ikinci olarak

def sms_sending(address,message,per):
    global stopper
    stopper = False
    while True:
        droid.smsSend(address,message)
        if stopper == True:
            break
        time.sleep(per)

yerine

def sms_sending(address,message,per):
    global stopper
    stopper = False
    while True:
        time.sleep(per)
        if stopper == True:
            break
        droid.smsSend(address,message)

yaptim.
Ayrica programin sms bolumundeki thread parcasinda

sms_senser.join(data_time)

kodundan sonra

print("Islem baslatildi.")

komutunu yazdim daha anlasilir olsun diye.

Bir de siz gondereceginiz mesaj sayisini istedigimi zannedip mantik hatasi oldugundan bahsetmissiniz.
ama program sizden kac sms gondereceginizi sormuyor ki.Sadece kac saniye boyunca sms gondereceginizi ve kac saniyede bir sms gondereceginizi soruyor.
Bu verdiginiz verileri kullanip size gondereceginiz sms sayisini soyluyor program ve sizden sadece onay bekliyor.Dedigim gibi sizden kac sms gondereceginizi sormuyor.
Son olarak verdiginiz yeni fikir cok super @blu3 .Bunun uzerine dusunecegim.Ama dedigim gibi telefonu 1 hafta kullanamayacagim.
Hatalarimi belirttiginiz icin size cok minnettarim.Ben sms hakkim olmadigi icin onceden deneyememistim.Hatami belirtip bana bir seyler kattiginiz icin cok tesekkur eserim.Baska boyle hata durumlari varsa soyleyebilirseniz cok sevinirim bu durumda oldugu gibi.


Sms gondermedi.

Kusura bakma @blu3 .Dalginligima geldi.Bir yanlislik olmus linkteki kodlarda.

def sms_sending(address,message,per):
    global stopper
    stopper = False
    while True:
        time.sleep(per)
        if stopper == True:
            break
        droid.smsSend(address,message)

fonksiyonunda

droid.smsSend(address,message)

yazmam gerekirken

droid.smsSender(address,message)

yazmisim.Pardon.Oyle garip hatalar vermesinin sebebi de smsSend yazmam gerekirken smsSender yazmis olmam linkteki kodlarda.
Duzeltilmisini atmaya caliscam.

https://paste.ubuntu.com/26337715/

Ayrica kodlarda su degisikligi yaptim.

def sms_sending(address,message,per):
    global stopper
    stopper = False
    while True:
        time.sleep(per)
        droid.smsSend(address,message)
        if stopper == True:
            break

diye bir duzenleme yaptim sms_sending fonksiyon taniminda.Insallah mesaj sayisini yanlis hesaplamaz.
Bu mesaj sayisini nasil dogru hesaplarim diye dusunecegim.Yine tesekkurler,yine tesekkurler.

Mesaj sayisini muhtemelen yanlis hesaplayacak galiba.Ah bi deneme sansim olsa sms bolumunu…

https://paste.ubuntu.com/26337850/

Bir de bu linki deneyebilir misiniz?Onda da su duzenlemeyi yaptim.

def sms_sending(address,message,per):
    global stopper
    stopper = False
    while True:
        if stopper == True:
            break
        time.sleep(per)
        droid.smsSend(address,message)

yaptim ve
print("Islem bitti.")
komutundan once

if data_time % per == 0 and (data_time // per) != 0:
    droid.smsSend(address,message)

yaptim.Bunu da deneyip ciktisini bana bildirebilirseniz cok sevinirim.

https://paste.ubuntu.com/26338611/

Hatta bu linki de deneyin.Cunku ustteki yaptigim duzenlemelerin pek de dogru bir cikti verecegini dusunmuyorum.Bu linkin daha dogru bir cikti verecegini dusunuyorum.Ama hatasiz olup olmadigini bilemem.Deneyin ve hatami soyleyin lutfen her zaman belirttigim gibi.

1 Beğeni

https://paste.ubuntu.com/26337715/

3 mesaj yollanacak diyor ancak 4 mesaj yolluyor.
15 / 4 / 3


5 mesaj yollanacak diyor 5 mesaj yolluyor.
15 / 3 / 5

https://paste.ubuntu.com/26337850/


6 mesaj yollanacak diyor 7 mesaj yolluyor.
20 / 3 / 6





https://paste.ubuntu.com/26338611/
51


4mesaj yollanacak diyor 4 mesaj yolluyor
30 / 7 / 4

Kusura bakmayin anlayamadim.3. link, mesaj sayisini dogru mu hesapliyor yani?

Digerleri gibi yuvarlama yapip 5 e tamamlamiyor dogru sonuc veriyor gerci 30÷7=4.28
4.50 den buyuk olmadigindan da yukari yuvarlamamis olabilir.
().50 den buyuk cikacak bir deneme yapip sonucunu paylasirim