Raspberry Pi Android App kommunikation (7 / 8 steg)
Steg 7: Skriva en app (Javakod)
För att göra en app-arbete, behöver du bara en layout. Du behöver också den kod som körs i bakgrunden.
Språket vi använder är Java, eftersom alla android apps är skrivna i Java. Så låter start kodning.
Först av allt, behöver du ladda ner den bifogade filen.
Denna fil är ett bibliotek så att du lätt kan använda JSON.
Placera denna fil i:
directiory/APP_NAME/app/src/main/Java/Company/APP_NAME/JSONParser.java
För mig har:
C : /Users/Laurens1/Desktop/instructables/Instructables/app/src/main/java/Laurens_wuyts/Instructables/JSONParser.java
Efter det kan du öppna JSONParser i android studio. Nu måste du ändra den första raden till:
paketet company.app_name;
OK kan nu vi börja skriva huvudkoden.
Öppna filen MainActivity.java
Först göra en nya framsteg-dialog. Detta används för att visa när koden körs och du behöver vänta.
Placera detta i den nationella klassen.
privat ProgressDialog pDialog;
Då behöver vi ett JSONparser-objekt att skicka data. Så placera denna linje under föregående rad:
JSONParser jsonParser = ny JSONParser();
Nu behöver vi två EditText objekt, så att vi kan pressa den infogade texten. Detta går under JSONParser.
EditText editText;
EditText editText2;
Vi går vidare till funktionen oncreate . Här behöver vi länka EditTexts från ovan med den verkliga edittexts i layouten. Du göra så här:
editText = (EditText) findViewById(R.id.Name);
editText2 = (EditText) findViewById(R.id.part_nr);
Vi måste skapa en ny klass för att ansluta till servern och skicka tidigare skrivit info i slutet.
Detta är klassen Create_part:
klassen Create_Part utökar AsyncTask {
skyddade void onPreExecute() {
super.onPreExecute();
pDialog = ny ProgressDialog(MainActivity.this);
pDialog.setMessage ("skickar del till databasen..."); Ange meddelandet för fönstret lastning
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show(); Placera lastning meddelandet på skärmen
}
Protected String doInBackground (sträng... args) {
String String_name = editText.getText().toString(); Få den infogade texten från editText filer
String Int_Part = editText2.getText().toString();
Lista params = ny ArrayList <> ();
params.Add (nya BasicNameValuePair ("Namn", String_name)); Lägga till parametrar till en matris
params.Add (nya BasicNameValuePair ("part_nr", Int_Part));
Begär HTTP POST med JSON parametrar
Ändra "RaspberryPi_IP till din IP-adress eller Noip tjänst
JSONObject json = jsonParser.makeHttpRequest ("RaspberryPi_IP/db_create.php", "POST", params);
försök {
int framgång = json.getInt("success");
IF(Success == 1) {
Uppsåt jag = nya Intent(getApplicationContext(), ConfirmActivity.class);
Öppna en ny aktivitet för att bekräfta det skickades. Vi kommer att skapa det senare.
startActivity(i);
finish();
}
} fånga (JSONException e) {
e.printStackTrace();
}
returnera null;
}
skyddade void onPostExecute(String file_url) {
pDialog.dismiss(); Stäng fönstret lastning när du är redo
}
}
Nu kan du göra en ny funktion som kallas Skicka. I denna funktion ringa du Create_Part. Som så:
public void skicka (vy) {
nya Create_Part().execute();
}
I activity_main.xml ändra du nu åtgärden VidKlickning för knappen till höger:
Skicka
OK din nästan gjort, nu behöver du bara göra en ny aktivitet som du ser i bilden.
Ändra aktivitetsnamnet till: ConfirmActivity
Klicka på Slutför
Gå nu igen till strings.xml och ändra "hello_world" strängen från Hello World! till delen skapades.
Nu ska det göras.
Bygga om appen och testa den på telefonen!