Intellekten IOT dörrklocka (7 / 8 steg)
Steg 7: Android App
Igen inte kan jag lära att göra hela Android App rätt från början. Så antar jag att du har grundläggande kunskap om Android App att göra.
Jag kan berätta den grundläggande tanken med anslutningarna händer och skärmen som ringer.
I Android app, kommer det att finnas en knapp för att Visa LIVE video streaming från webbkameran. Dessutom kan du lägga till en möjlighet att stänga av anmälan eller att stänga av att ringa precis som "Stör ej".
Jag har nämnt olika moduler med exempelkoden som hjälper dig bygga app. Till slut har jag också tagit komplett Android projektfilerna bara för din referens.
Socket anslutning
Vi kommer att använda grundläggande socket-anslutningen för att skicka meddelanden över enheter. Här kommer att vår smartphone fungera som en server.
< p > Socket socket = null; < br > DataInputStream dataInputStream = null;
DataOutputStream dataOutputStream = null; < /p >< p > prova {
serverSocket = nya ServerSocket(SocketServerPORT);
medan (sant) {
socket = serverSocket.accept();
dataInputStream = ny () DataInputStream
socket.getInputStream());
< /P >< p > String messageFromClient = "";
Om inget meddelande skickas från klienten, blockeras här koden programmet
messageFromClient = dataInputStream.readUTF();
BufferedReader i = nya BufferedReader (nya InputStreamReader(dataInputStream));
messageFromClient = in.readLine();
/ * meddelande += "#" + count + "från" + socket.getInetAddress()
+ ":" + socket.getPort() + "\n"
+ "Msg från klienten:" + messageFromClient + "\n";*/
meddelande = messageFromClient;
IF(Message.equals("ring")) {
Uppsåt dialogIntent = nya uppsåt (Server.this, Call.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);
} < /p >
Så i ovanstående kod är meddelande strängen från Intel Edison styrelsen. Så om den får "ring" startas sedan en ny verksamhet, som kommer att ta upp den anropande skärmen med alternativen för att acceptera och avsluta ett samtal.
Kalla skärmen ovanpå skärmen lås
Vi måste ta upp den anropande skärmen även när telefonen är låst. För att göra som innehåller följande flaggor i Android aktiviteten.
< p > getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); < br > getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); < br > getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); < br > getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); < /p >
Spela ringsignal
Vi kommer använda MediaPlayer klass för att spela ringsignal.
MediaPlayer mediaPlayer;
< p > mediaPlayer = MediaPlayer.create(getApplicationContext(),R.raw.a); en är media fil < /p >< p > mediaPlayer.start(); börja spela ringsignal < /p > mediaPlayer.stop(); sluta spela ringsignal
Levande Video ström
Vi kommer att använda webben vill visa innehållet från den URL som vi fick i föregående steg. Här är den grundläggande koden:
< p > offentliga klassen LiveCall utökar aktivitet {webbvy web; < br >
skyddade void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_live_call);
Web = (webbvy) findViewById(R.id.web);
web.setWebViewClient (nya myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl ("http://192.168.43.142:8080/flash.html");
web.setBackgroundColor(0);
} < /p >
URL IP dvs 192.168.43.142 blir i princip din Intel Edison lokala IP och 8080 är portnumret. Ange fullständiga URL-adressen som du fått i tidigare steg.
Motion Detection anmälan
När rörelse upptäcks vid hemförsäljning, skickas ett meddelande från Intel Edison styrelsen till Android app anmäla denna verksamhet. Här är koden för anmälan tillsammans med ett alternativ för att Visa live-vyn av videoströmmen.
< p > if(message.equals("motion")) {< br > String strtitle = getString(R.string.app_name);
Ställ in anmälan Text
String strtext = "någon är på dörren"; < /p >< p > / / öppen NotificationView klass på anmälan Klicka på
Avsikt intent = nya uppsåt (Server.this, LiveCall.class);
Skicka data till NotificationView klass
intent.putExtra ("rubrik", strtitle);
intent.putExtra ("text", strtext);
PendingIntent pIntent = PendingIntent.getActivity (Server.this, 0, uppsåt,
PendingIntent.FLAG_UPDATE_CURRENT);
Vibrator v = (Vibrator)getSystemService(VIBRATOR_SERVICE);
Vibrera för 1 sekunder
v.vibrate(2000);
NotificationCompat.Builder builder = nya NotificationCompat.Builder(Server.this)
Ange ikon
.setSmallIcon(R.drawable.ic_launcher)
Ställ in Ticker meddelande
.setTicker ("dörrklocka")
Ange titel
.setContentTitle ("Intel Iot dörrklocka")
Ange Text
.setContentText ("någon är vid dörren!")
Lägga till en händelseknapp under anmälan
.addAction (R.drawable.live, "GO LIVE", pIntent)
Ange PendingIntent till anmälan
.setContentIntent(pIntent)
Avvisa anmälan
.setAutoCancel(true); < /p >< p > / / Skapa Notification Manager
NotificationManager notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Bygga anmälan med Notification Manager
notificationmanager.notify (0, builder.build());
}
} < /p >
Här är Meddelandesträngen fick "motion". Efter att vi skapar ett meddelande förevisande "Någon är vid dörren!" tillsammans med ett alternativ att gå LIVE och titta på video stream.
Så nästan alla viktiga aspekter av Android app omfattas i detta steg. Nu är det sista som finns kvar att lägga upp alla koden för att göra det ser ut som ett system som helhet.