Как создавать уведомления в андроид студии? - PullRequest
0 голосов
/ 13 ноября 2018

Я создаю приложение для Android, которое отображает положение ребенка (лежа, сидя, стоя, вне кроватки) от датчиков луча, подключенных к RPI3. Я использую только соединение Wlan.

Это мой код на RPI3, который определяет положение ребенка и сохраняет его в базе данных.

import RPi.GPIO as GPIO
import time
import MySQLdb

db = MySQLdb.connect("localhost", "root", "raspberry", "cribdb")

GPIO.setmode(GPIO.BOARD)

GPIO.setup(12, GPIO.IN) #Right level-1
GPIO.setup(16, GPIO.IN) #Right level-2
GPIO.setup(18, GPIO.IN) #Right level-3

GPIO.setup(11, GPIO.IN) #Middle level-1
GPIO.setup(13, GPIO.IN) #Middle level-2
GPIO.setup(15, GPIO.IN) #Middle level-3

GPIO.setup(36, GPIO.IN) #Left level-1
GPIO.setup(38, GPIO.IN) #Left level-2
GPIO.setup(40, GPIO.IN) #Left level-3

last_status = None

while True:
input12 = GPIO.input(12)
input16 = GPIO.input(16)
input18 = GPIO.input(18)
input11 = GPIO.input(11)
input13 = GPIO.input(13)
input15 = GPIO.input(15)
input36 = GPIO.input(36)
input38 = GPIO.input(38)
input40 = GPIO.input(40)

if (input12 == 1 or input11 == 1 or input36 == 1 and
    input16 == 0 or input13 == 0 or input38 == 0 and
    input18 == 0 or input15 == 0 or input40 == 0):
    status = "Lying down"

elif (input12 == 1 or input11 == 1 or input36 == 1 and
      input16 == 1 or input13 == 1 or input38 == 1 and
      input18 == 0 or input15 == 0 or input40 == 0):
    status = "Sitting/Crawling"

elif (input12 == 1 or input11 == 1 or input36 == 1 and
      input16 == 1 or input13 == 1 or input38 == 1 and
      input18 == 1 or input15 == 1 or input40 == 1):
    status = "Standing"

elif (input12 == 0 or input11 == 0 or input36 == 0 and
      input16 == 1 or input13 == 1 or input38 == 1 and
      input18 == 1 or input15 == 1 or input40 == 1):
    status = "Trying to climb out"

elif (input12 == 0 or input11 == 0 or input36 == 0 and
      input16 == 0 or input13 == 0 or input38 == 0 and
      input18 == 1 or input15 == 1 or input40 == 1):
    status = "Almost out"
else:
    status = "Out of the crib"



time.sleep(1)

if status != last_status:
    print(status)
    last_status = status

    curs = db.cursor()
    curs.execute(

    """INSERT INTO tbstatus values(NULL, %s)""", (status,)
)
db.commit()

number_of_rows= curs.execute("SELECT * FROM tbstatus")

if (number_of_rows >= 4):
    curs.execute("""DELETE FROM tbstatus order by id LIMIT 1""")
    db.commit()

Тогда после этого. Мое приложение для Android будет отображать положение ребенка с помощью веб-просмотра, получая URL-адрес веб-сервера, настроенного мной в RPI3.

MainActivity.java

public class MainActivity extends Activity {

@SuppressLint("SetJavaScriptEnabled") @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);

String url = "http://192.168.8.127";    
WebView web = (WebView) findViewById(R.id.webView1);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setDomStorageEnabled(true);
web.loadUrl(url);

Мой вопрос: как мое приложение может уведомить меня (по вибрации или звуку), как только веб-сервер, который я установил в своем веб-просмотре, показывает положение ребенка "Из кроватки"? Я надеюсь, что это также уведомит меня, даже приложение не открыто. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...