小编Lar*_*ara的帖子

DefaultHttpClient到AndroidHttpClient

我的代码有问题,我希望得到一些帮助.我是第一次使用这段代码:

        new DefaultHttpClient().execute(new HttpGet(linkk)).getEntity().writeTo(
           new FileOutputStream(f));
Run Code Online (Sandbox Code Playgroud)

它在Android 2.3上运行得很好但在4.0上却没有.经过一些研究,我听说使用AndroidHttpClient更好,这样它就可以在4.0和3.1上运行.问题是我不知道我是否正确修改了我的代码,而且互联网上没有太多关于AndroidhttpClient的例子.

这是我调整后的代码:

    AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
    HttpGet request = new HttpGet(linkk);   
    HttpResponse response = client.execute(request); //here is where the exception is thrown    
    response.getEntity().writeTo(new FileOutputStream(f));
Run Code Online (Sandbox Code Playgroud)

这是logcat显示的内容:

     01-03 01:32:11.950: W/dalvikvm(17991): threadid=1: thread exiting with uncaught exception (group=0x40a2e1f8)
     01-03 01:32:11.986: E/AndroidRuntime(17991): FATAL EXCEPTION: main
     01-03 01:32:11.986: E/AndroidRuntime(17991): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lacra.fbirthdays/com.lacra.fbirthdays.ListV}: android.os.NetworkOnMainThreadException
     01-03 01:32:11.986: E/AndroidRuntime(17991):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
     01-03 01:32:11.986: E/AndroidRuntime(17991):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
     01-03 01:32:11.986: E/AndroidRuntime(17991):   at android.app.ActivityThread.access$600(ActivityThread.java:123)
     01-03 01:32:11.986: E/AndroidRuntime(17991):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
     01-03 01:32:11.986: …
Run Code Online (Sandbox Code Playgroud)

android apache-commons-httpclient

26
推荐指数
2
解决办法
5万
查看次数

发送广播UDP但不在其他Android设备上接收

我正在尝试开发一个发送一些广播消息的应用程序,并从其他Android设备接收一些答案.我在从其他设备接收UDP消息时遇到一些麻烦.我应该提一下,这段代码适用于Gingerbread,但是在JellyBean上它不再起作用了,我不知道可能是什么问题.

这是我发送广播消息的地方(我知道其他设备在端口5000上侦听):

 private void sendUDPMessage(String msg) {

    try {
        DatagramSocket clientSocket = new DatagramSocket();

        clientSocket.setBroadcast(true);
        InetAddress address = InetAddress.getByName(Utils.getBroadcastAddress());

        byte[] sendData;

        sendData = msg.getBytes();
        DatagramPacket sendPacket = new DatagramPacket(sendData,
                sendData.length, address, 5000);
        clientSocket.send(sendPacket);

        clientSocket.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我收到它的地方:

private void start_UDP()
{
    try {
            serverSocketUDP = new DatagramSocket(5000);
        }
    catch (Exception e) {

        Log.i(LOGTAG, "Exception opening DatagramSocket UDP");
    }

    final byte[] receiveData = new byte[1024];


    while(runningUDP) {
        Log.d(LOGTAG, "Waiting for Broadcast request in ServerUDP.");

        final …
Run Code Online (Sandbox Code Playgroud)

android udp broadcast

17
推荐指数
1
解决办法
3万
查看次数

在Android日历中插入多个事件

我在找到解决问题的方法时遇到了麻烦.我想在我的Android日历中添加多个事件,但我不知道如何.我给了这个代码:

        Calendar cal = Calendar.getInstance();              
            Intent intent = new Intent(Intent.ACTION_EDIT);
            intent.setType("vnd.android.cursor.item/event");
            intent.putExtra("beginTime", cal.getTimeInMillis());
            intent.putExtra("allDay", true);
            intent.putExtra("rrule", "FREQ=YEARLY");
            intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000);
            intent.putExtra("title", "A Test Event from android app"+String.valueOf(i));
            startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但它只是将我发送到我的日历,让我编辑并手动插入我的活动.我想自动插入事件,而无需转到我的日历应用程序.而且,我只能使用此代码添加一个事件.这不是我想要的.我有2个String数组,一个包含日期,另一个包含事件的名称.有谁知道有没有办法做到这一点?我一直在寻找解决方案很长一段时间没有找到解决方案.如果有人帮助过我,我将不胜感激.谢谢!

我已经解决了这个问题!非常感谢你!但现在我有另一个我无法解决的问题.我有这个代码:

        ContentValues cv = new ContentValues();
        cv.put("calendar_id", calIds[0]);
        cv.put("title", title);
        //cv.put("dtstart", dtstart );
        //cv.put("dtend", dtend);
        cv.put("rrule", "FREQ=MONTHLY");
        cv.put("description", comment );
        Calendar start = Calendar.getInstance();
        start.set(2012, 0, 2, 8, 0, 0);

        Calendar end = Calendar.getInstance();
        end.set(2012, 0, 2, 9, 0, 0);

        long startTime = start.getTimeInMillis();       
        long endTime = end.getTimeInMillis();

        cv.put("dtstart", startTime);
        cv.put("dtend", endTime); …
Run Code Online (Sandbox Code Playgroud)

events android calendar

7
推荐指数
1
解决办法
6469
查看次数