Het creëren van een androïde

ringtone verstoring, het creëren van ringtone verstoring in de robot,,,,,,,,,, 24, 6 - eenheid,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, de androïde. Altijd in de toepassing en de verandering van hun nieuwe en innovatieve methoden, van de prestaties van de apparatuur in de gaten houden.De androïde platform aan zijn opdrachtgever een grote mate van vrijheid voor deze toepassing.In deze handleiding zal je leren hoe te komen tot een toepassing van het programma, in elke willekeurige kreeg een telefoontje van een androïde beltonen op mobieltjes,,, op voorwaarde, als je wilt volgen, zorg er dan voor dat je de installatie van de nieuwe versie van   androïde studio.Je kan op de website van de androïde projectontwikkelaars krijgen, want dit is een intermediair, zou ik niet al te veel details die in de basis.Ik neem aan dat je al op het creëren van een of meer vertrouwd te maken met de toepassing van een robot, de basis van de androïde SDK.,, 1.Het creëren van een nieuw project, te beginnen met de androïde studio 's, en de oprichting van een nieuw project.De   wordt de naam van de toepassing, ringtonerandomizer,.Om ervoor te zorgen dat je de keuze van een uniek pakket.,,,,, deze aanvraag kan in alle telefoons hebben API - niveau acht of hoger is, dus  , minimale SDK androïde 2.2,.,,,,,, en de volgende, niet op de voltooiing, en activiteiten.,,, 2. De lijst van   bewerken, we moeten de volgende rechten van toepassing  :,,, de androïde toestemming. Read_phone_state opsporen,   bellen, de androïde machtigingen. Write_settings,   standaard ringtone veranderen, de androïde toestemming verkrijgen. Read_external_storage,   bel lijst beschikbaar zijn, wordt het volgende toegevoegd: AndroidManifest. XML -,,, De androïde, < toestemming voor het gebruik van de naam = "androïde toestemming. Read_phone_state" /> < toestemming voor het gebruik van de naam "de androïde = androïde toestemming. Write_settings" /> < toestemming voor het gebruik van de naam "de androïde =...Read_external_storage. Vergunning. "/>,, dit programma met een activiteit die de gebruikers een verandering in het gedrag van activering /ringtone uitzetten.,,, < activiteiten - naam" mainstream "> < bedoeling filter > < actie robot: naam =" androïde. Bedoeling. Actie. "> < categorie: naam:" robot. Bedoeling. Categorie. De zender /> < /bedoelingen filters > < /activiteiten >,, het heeft ook een,   BroadcastReceiver te   opsporen van een staat van verandering.Zoals blijkt uit onderstaande tabel, naar het voornemen om te handelen, de androïde. Bedoeling. Actie. Phone_state,.,,, < die androïde: naam: "=". Ringreceiver androïde geactiveerd = "waar" > < bedoeling filter > < actie - naam "de bedoeling van de actie = de androïde.. phone_state" /> < /bedoelingen filters > < /ontvanger >,, 3.Bewerken het touw. XML -,,  , touw, dossier bevat de aanvragen met behulp van touw.Actualisering van de waarde /string. XML -   als volgt:,, <?De XML - = "1" codering = "utf - 8"?> < middelen > < - naam = "app_name" > ringtone verstoring < /serie > < - naam = "activeren" > - ringtone verstoring < /serie > < - naam = "-" > het sluiten van de ring verstoring < /. > < - naam = "list_of_ringtones" > beschikbaar op dit apparaat geluid: < /serie > < /resource >,, 4.Het creëren van   indeling van activiteiten, activiteiten, moeten de volgende punten:,,,,, een  , schakel de knop activeert een verstoring,   /sluiten van de ring, m, waarin alle beschikbare beltonen, een  , structuur, dat wil zeggen als een etiket,,, het creëren van een dossier, lay - out /activity_main.xml, en de vervanging van de volgende.Zoals je kan zien, de indeling is zeer eenvoudig en simpel.De XML - = "1" codering = "utf - 8"?> < hiërarchie xmlns:Android = "http://schemas.android.com/apk/res/android" androïde: - = "verticale" - layout_width = "match_parent" Android:layout_height = "match_parent" gevuld "16dp = androïde:" > < - knop Android:layout_width = "match_parent" Android:layout_height = "wrap_content" Android:textoff = "@ string /activeren" = "@ wat de androïde: de tekst /" "" Android:ID = + ID /trekker /> < structuur Android:layout_width = "match_parent" Android:layout_height = "wrap_content" androïde: tekst = "@ string /list_of_ringtones" - stijl = "vet" /> Android:layout_width < m = mAtch_parent "Android:layout_height =" "" "match_parent Android:ID = + ID /list_of_ringtones" /> < /hiërarchie >,, 5.Het creëren van, ringtonehelper, extra klassen, en om te voorkomen dat de behandeling, ringtonemanager, rechtstreeks in de, activiteiten, of, BroadcastReceiver, moeten we   het creëren van een extra   klasse, ringtonehelper,.,,, in de loop van ringtonehelper {},,, ringtonehelper,   klasse heeft twee statische methode gebruikt, ringtonemanager, klasse, fetchavailableringtones,.,,, voor het verkrijgen van de  , fetchavailableringtones, bel lijst beschikbaar, weer een lijst van  , ringtones,.,, openbare statische lijst < Bell > fetchavailableringtones (context) {lijst < Bell > - = nieuwe arraylist < > (de); ringtonemanager monseigneur = nieuwe ringtonemanager (het kader); (ringtonemanager.type_ringtone apparatuur manager.N = manager); in de getcursor () (). Getcount; (int i = 0; ik < n, I + +) (ringtones. Toegevoegd (de monseigneur. GetRingtonePosition: ringtone positie krijgen (i);}, bel terug;}, in  , fetchavailableringtones,   methode, we beginnen Met het creëren van de  , ringtonemanager voorbeelden,   klasse.De  , ringtonemanager,   object kan een lijst van alle beschikbare hulpmiddelen op het geluid.Dit omvat de waarschuwingen en andere kennisgeving klinkt, we  , apparatuur,   methoden vastgesteld voor  , type_ringtone vormen,   alleen geïnteresseerd in ons   Bell, en bel dan de    , getCount,   methode weet hoeveel ring kan worden ingeroepen     getRingtonePosition: krijgen, bel   methode, een standpunt dat, elke cyclus, Bij de ring, ring,,,,,,,, changeringtone, changeringtone, verantwoordelijk is voor de omzetting van de apparatuur voor de toepassing van de Bell, we de kern van het programma.,, openbare statische nietig changeringtone (context) {SharedPreferences voorkeur = context. Getsharedpreferences ("), de context". Mode_private); als (!De voorkeur. Getboolean ("actieve", valse) rendement; ringtonemanager monseigneur = nieuwe ringtonemanager (achtergrond), willekeurige = nieuwe willekeurige (systeem. Currenttimemillis ()); n = int willekeurig. NextInt (manager getcursor () (). Getcount); ringtonemanager. Setactualdefaultringtoneuri (context, ringtonemanager.type_ringtone, manager getringtoneuri (n));}, ten eerste of in  , SharedPreferences als gebruikers,   geactiveerd. De verstoring.En dan  , gerandomiseerde,   klasse van de keuze van een willekeurige, kleiner is dan de beschikbare getringtoneuri ring nummer.,,,,   methode   de   ringtone uri van de   gaf  , setactualdefaultringtoneuri,   methode verandert, bel. 6.Het creëren van een radio - ontvanger, het creëren van een nieuwe klasse van nomenclatuur, ringreceiver,   geërfd van  , BroadcastReceiver,.Nieuwe klas zal alleen een methode   genoemd, OnReceive,.Op deze manier, wat we moeten doen is een van de methoden changeringtone helper, indien aan de volgende voorwaarden is voldaan:,, ontvangen, met de bedoeling van de actie, gelijk is aan de  , telephonymanager.action_phone_state_changed, zoek de sleutel, de  , de waarde van de extra_state, gelijk is aan de  , telephonymanager.extra_state_ringing,,, wat is dit, ringreceiver, er moeten als dit de les ringreceiver uitbreiding:,, BroadcastReceiver {- de leegte OnReceive (de context en de bedoeling) {als (bedoelingen. Getaction (.) gelijk aan (telephonymanager. Action_phone_state_changed)) {string callstate = bedoelingen. Getstringextra (telephonymanager. Extra_state); als (callstate. Gelijk aan (telephonymanager. Extra_state_ringing)) {Ringtonehelper. Changeringtone (het kader);}}}}, 7.De ontwikkeling van de activiteiten, het creëren van een nieuwe klasse van de nomenclatuur voor   geërfd,  , activiteiten.We herschrijven, onCreate methoden en de uitvoering van de volgende acties:  ,,, bel de setContentView,  ,   definitie, de indeling van het gebruik van activity_main.xml,, bel de helper, fetchavailableringtones, methoden te vullen, lijst van Bell, starten, starten, m,,,,,, - knop, de Belangrijkste activiteiten van categorie   lijkt nu. Dus, de belangrijkste activiteiten: uitbreiding van particuliere activiteiten (m listofringtones; particuliere - knop togglerandomizer; de privé - lijst < Bell > ring; - de beschermde nietig oncreate (pakket savedinstancestate {-). OnCreate (savedinstancestate); setContentView (r.layout. Activity_main); listofringtones = (m) findvIewbyid (r.id.list_of_ringtones); togglerandomizer = (knop) findViewById (r.id.toggle); - = ringtonehelper. Fetchavailableringtones (de); initializelist () (); initializetoggle;}},,,, initializetoggle, in  , initializetoggle, vaststelling van de methode op basis van de knop booleaanse staat, in de   nomenclatuur SharedPreferences, actieve,,,.De waarde voor een valse, bij verstek,,, hebben we ook nog een, oncheckedchangelistener, naar de knop om   waarde, SharedPreferences,.En putboolean, ingediend, methode, bewerken, om dit te doen. En, particuliere nietig initializetoggle () {uiteindelijk SharedPreferences voorkeur = getsharedpreferences ("), de context". Mode_private); booleaanse actieve = de voorkeur. Getboolean ("actieve", valse); togglerandomizer. Setchecked (initiatief); togglerandomizer. Setoncheckedchangelistener (De nieuwe compoundbutton. Oncheckedchangelistener () {- de leegte oncheckedchanged (compoundbutton buttonview booleaanse) {voorkeur. Edit (). Putboolean ("actieve", controle). () plegen;}});},,,,, initializelist, initializelist, voor het creëren van een adaptor, gebaseerd op de lijst, ring,.Het gebruik van het project, android.r.layout.simple_list_item_1, als de lay - out, M.Het is maar, structuur,.Het moet onder de titel de klokken van de klassen, de methoden en het gebruik van,,.Dit zijn de interne, getview doen, methoden, adapter, na het herschrijven. En, zodra de adaptor klaar is, zal het aan, m, het gebruik, de   m, setadapter,,.,, particuliere nietig initializelist () {ArrayAdapter < adapter = nieuwe ringtone > ArrayAdapter < Bell > dit punt android.r.layout.simple_list_item_1, bel) {- getview (int de ogen van het publiek, de positie van de vrouw op convertview, oog - groep) {punt = (structuur - structuur). Getview (positie, convertview, moeder); het project wordt verkregen (bel. En (plaats). (De mainstream. Dit);}}; ontvangsten; listofringtones. Setadapter (adapter);}, 8.Samenstelling en werking van toepassing is, hebben we nu de voorbereidingen voor de invoering van een androïde.Je moet kunnen zien dat alle beschikbare ring in je telefoon, als je met de toepassing ervan.Klik op de knop activeert een willekeurige generator.,,,,, dat hij van een andere telefoon een paar keer.De eerste keer dat je een telefoontje kreeg van je originele ringtone zal spelen.In het kader van een telefoon uit te horen, elke keer als je een willekeurige beltonen.,, constateren dat de procedure tot wijziging van de telefoon ringtone.Als je een bepaald. Een contact of een groep van contacten, bel nog  .,, conclusies, en nu weet je hoe het gebruik van beschikbare functies, ringtonemanager, klasse.Heb je ook geleerd hoe het opsporen van bellen.Voel je vrij in de toepassing van de andere aan de randomisatie op soortgelijke wijze vastgesteld.De toegang tot de website van de androïde ontwikkelaars, ringtonemanager, klasse.




This is what the final result could look like



Previous:
Next Page: