android connection w/ online page or db using php mysql xml

Problems with WiFi, SQLite ,Bluetooth, WiMax, Proxies, etc...

android connection w/ online page or db using php mysql xml

Postby demolition » Thu Apr 09, 2009 2:41 pm

Im having a problem.

I am trying to build a software that communicates with a website.
simply, i would like to have a php webpage that when i click a button it creates an alert on the phone.

I planned on doing that by using a mysql database to with the website where the click from the webpage will update the database, then the mobile phone will (at intervals) make a request to the webpage or database to retrieve that info.

Here's what im thinking of using:
PHP
Mysql
Android OS
Windows Mobile OS

I found a tutorial from Apress called 'Apress Android Tutorials July 2008' and found an example that was about 90% similar to what i want (with the source code) but when i try it i get errors and I cant find a way to contact Apress(site is down etc)(I also included the full file i got from the apress tutorial codes - they are untouched)

The example was called Chapter 5: Loading a List from the Web. when i use eclipse with the source, the error i get is "UIThreadUtilities cannot be resolved". I noticed that when i excluded the rest of the code and specify to import UIThreadUtilities it doesnt work.

Also id rather not use the web or browser interface to do this. i want it to be in code. for example if the string "ready" exists in a mysql db online, by pressing a button on the android app will display the string or store it.



I know this message is a bit long and it involves a lot but If anyone can please help:

1. request i send them the source code from Apress to see if it works on their eclipse. So I know how to fix it. or recommend an alternative way for me to pull info from a URL(or php page) or a database.

2. Help with performing the same request with windows mobile (PPC).







Heres the code its supposed to pick a list of radio stations via xml parsing from a web location:
I get errors where it says UiThreadutilities and other related places
(I also included the full file i got from the apress tutorial codes - they are untouched)
======================================================================


package com.apress.radio;

import java.io.InputStream;
import java.util.List;
import java.util.Vector;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.Locator;
import org.xml.sax.XMLReader;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.speech.recognition.Logger;
import android.util.Log;
import android.view.UIThreadUtilities;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;



public class StationPicker extends ListActivity {

Vector<StationData> stationListVector = new Vector<StationData>();
SAXParser parser = null;
XMLReader reader = null;
XMLHandler handler = new XMLHandler();
ArrayAdapter<StationData> adapter = null;
Activity ctx = this;


class XMLHandler implements org.xml.sax.ContentHandler
{
StationData currentStation;
String lastName;

public void endDocument(){}
public void endPrefixMapping(String prefix){}
public void ignorableWhitespace(char[] ch, int start, int length){}
public void processingInstruction(String s, String a){}
public void setDocumentLocator(Locator l){}
public void skippedEntity(String name){}
public void startDocument(){}
public void startPrefixMapping(String prefix, String s){}
public void characters(char[] ch, int start, int length)
{
if(lastName.equals("title") && currentStation.title.length() == 0)
{
currentStation.title = String.copyValueOf(ch, start, length);
}
else if(lastName.equals("audioUrl") && currentStation.url.length() == 0)
{
currentStation.url = String.copyValueOf(ch, start, length);
}
}
public void startElement(String uri, String localName, String qName, Attributes atts)
{
lastName = localName;
if(localName.equals("station"))
{
currentStation = new StationData();
}
}

public void endElement(String uri, String localName, String qName)
{
if(localName.equals("station"))
{
if(currentStation != null)
stationListVector.add(currentStation);
}
}
}


class StationData
{
public String title = "";
public String url = "";

public String toString()
{
return title;
}
}

private void initList()
{
adapter = new ArrayAdapter<StationData>(StationPicker.this, R.layout.list_element, R.id.textElement);
setListAdapter(adapter);
}

public void onCreate(Bundle icicle) {
super.onCreate(icicle);
try
{
setContentView(R.layout.main);
SAXParserFactory f = SAXParserFactory.newInstance();
parser = f.newSAXParser();
reader = parser.getXMLReader();
reader.setContentHandler(handler);
initList();
} catch (Exception e)
{
Log.e("StationPicker", "Parser FAIL!");
}
}

protected void onListItemClick(ListView l, View v, int position, long id)
{
StationData selectedStation = stationListVector.elementAt(position);
MediaPlayer player = new MediaPlayer();
try
{
player.setDataSource(selectedStation.url);
player.start();
}
catch (Exception e)
{
Log.e("PlayerException", "SetData");
}
}

public void onStart()
{
super.onStart();

Thread t = new Thread()
{
public void run()
{
HttpUriRequest request = null;
HttpResponse resp = null;
InputStream is = null;

DefaultHttpClient client = new DefaultHttpClient();

try{
//Build the request
request = new HttpGet("http://www.wanderingoak.net/stations.xml");
//Execute it using the default HTTP Client settings;
resp = client.execute(request);
//Pull out the entity
HttpEntity entity= resp.getEntity();
//Snag the response stream from the entity
is = entity.getContent();
//Initalize a new XML parser
reader.parse(new InputSource(is));


Runnable r = new Runnable()
{
public void run()
{
TextView t = (TextView) findViewById(R.id.loadingStatus);
t.setText("Stations Loaded");

try{
for(int i=0; i < stationListVector.size(); i++)
adapter.addObject(stationListVector.elementAt(i));
}catch (Exception e)
{
Log.e("Fail", "Superfail");
}
getListView().invalidate();
}
};

UIThreadUtilities.runOnUIThread(StationPicker.this,r);

}
catch (Exception e)
{
Log.e("Stations()", "Exception", e);
}
}
};
t.start();

}
}
Attachments
Chapter5.rar
this is the source file from the Apress Tutorial
(84.23 KiB) Downloaded 77 times
demolition
Once Poster
Once Poster
 
Posts: 1
Joined: Thu Apr 09, 2009 2:28 pm

Top

Return to Networking & Database Problems

Who is online

Users browsing this forum: No registered users and 5 guests