PHP API から情報を取得して Google カレンダーから情報を取得するアプリケーションがあります。問題は、アプリがエミュレーターで動作することですが、携帯電話で使用しようとすると、情報のない通常の黒い画面しか表示されません。接続の問題のようです (私の最初の考えとは異なります)。エミュレータのAndroidバージョンは2.3.3で、私の電話でも同じです。
これは私のコードです:
public class AgendaActivity extends Activity {
/** Called when the activity is first created. */
public static final String CAL= "http://192.168.1.58/calendar.php";
ListView vue;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vue = (ListView) findViewById(R.id.listView1);
List<HashMap<String, String>> liste = new ArrayList<HashMap<String,String>>();
HashMap<String, String> element;
String result = getServerData(CAL);
String[] chaine = result.split(";");
for(int i=1;i<chaine.length-1;i++)
{
String[] event = chaine[i].split(":");
element = new HashMap<String, String>();
element.put("titre", event[1]);
element.put("date",event[3]+":"+event[4] );
liste.add(element);
}
ListAdapter adapter = new SimpleAdapter(this,
liste,
android.R.layout.simple_list_item_2,
new String[] {"titre", "date"},
new int[] {android.R.id.text1, android.R.id.text2 });
vue.setAdapter(adapter);
}
private String getServerData(String returnString) {
InputStream is = null;
String result = "";
File file = new File("sdcard/event.txt");
FileWriter fw;
FileReader fr;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("contact",""));
HttpResponse response=null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(returnString);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection " + e.toString());
String str = "";
int i = 0;
try {
fr =new FileReader(file);
while((i = fr.read()) != -1)
str += (char)i;
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
returnString=str;
return returnString;
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result " + e.toString());
}
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++)
{
JSONObject json_data = jArray.getJSONObject(i);
returnString = ""+ json_data;
}
}catch(JSONException e)
{
returnString=e.toString();
}
try {
fw = new FileWriter(file);
fw.write(returnString);
fw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return returnString; }
}
シミュレーターのアプリは正常に動作しますが、アプリを起動すると、エラー セクションで logcat が表示されます。
04-10 15:03:56.493: E/Zygote(33): setreuid() failed. errno: 2 04-10 15:04:09.523: E/Zygote(33): setreuid() failed. errno: 17 04-10 15:04:12.363: E/BatteryService(72): usbOnlinePath not found 04-10 15:04:12.363: E/BatteryService(72): batteryVoltagePath not found 04-10 15:04:12.363: E/BatteryService(72): batteryTemperaturePath not found 04-10 15:04:12.393: E/SurfaceFlinger(72): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake 04-10 15:04:12.723: E/SensorService(72): couldn't open device for module sensors (Invalid argument) 04-10 15:04:20.463: E/EventHub(72): could not get driver version for /dev/input/mouse0, Not a typewriter 04-10 15:04:20.463: E/EventHub(72): could not get driver version for /dev/input/mice, Not a typewriter 04-10 15:04:20.493: E/System(72): Failure starting core service 04-10 15:04:20.493: E/System(72): java.lang.SecurityException 04-10 15:04:20.493: E/System(72): at android.os.BinderProxy.transact(Native Method) 04-10 15:04:20.493: E/System(72): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146) 04-10 15:04:20.493: E/System(72): at android.os.ServiceManager.addService(ServiceManager.java:72) 04-10 15:04:20.493: E/System(72): at com.android.server.ServerThread.run(SystemServer.java:206) 04-10 15:04:21.153: E/SoundPool(72): error loading /system/media/audio/ui/Effect_Tick.ogg 04-10 15:04:21.153: E/SoundPool(72): error loading /system/media/audio/ui/KeypressStandard.ogg 04-10 15:04:21.163: E/SoundPool(72): error loading /system/media/audio/ui/KeypressSpacebar.ogg 04-10 15:04:21.163: E/SoundPool(72): error loading /system/media/audio/ui/KeypressDelete.ogg 04-10 15:04:21.163: E/SoundPool(72): error loading /system/media/audio/ui/KeypressReturn.ogg 04-10 15:04:21.245: E/UsbObserver(72): java.lang.NullPointerException 04-10 15:04:21.245: E/UsbObserver(72): at com.android.server.UsbObserver.init(UsbObserver.java:131) 04-10 15:04:21.245: E/UsbObserver(72): at com.android.server.UsbObserver.<init>(UsbObserver.java:65) 04-10 15:04:21.245: E/UsbObserver(72): at com.android.server.ServerThread.run(SystemServer.java:402) 04-10 15:04:22.623: E/ThrottleService(72): Could not open GPS configuration file /etc/gps.conf 04-10 15:04:26.083: E/logwrapper(173): executing /system/bin/tc failed: No such file or directory 04-10 15:04:26.123: E/logwrapper(174): executing /system/bin/tc failed: No such file or directory 04-10 15:04:26.239: E/logwrapper(175): executing /system/bin/tc failed: No such file or directory 04-10 15:17:37.467: E/InputDispatcher(72): channel '407739a0 com.android.agenda/com.android.agenda.AgendaActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8 04-10 15:17:37.467: E/InputDispatcher(72): channel '407739a0 com.android.agenda/com.android.agenda.AgendaActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
何か案は?