0
votes

I need help, seems like a simple problem, but I'm stuck with it is several days. I am trying to use Azure Mobile service for persisting data from my Android app. The issue I am having now is that I have a data transfer object with several fields corresponding to columns in Azure database table. It is a simple table, followed all the steps ... What am I doing wrong?

    package com.bn7.rotabn7;
    import java.net.MalformedURLException;
    import com.microsoft.windowsazure.mobileservices.*;
    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.view.Menu;

    public class MainActivity extends Activity {
        private MobileServiceClient mClient;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            try {
                 mClient = new MobileServiceClient( 
                        "https://ocamorana.azure-mobile.net/", 
                        "hCzcrsFYhkGmxPvQDNxyqBXjZwjXlK99", 
                        this 
                        );
                Item item = new Item(); 
                item.IdPhone = "Awesome item"; 
                item.DateTimePhone = "Awesome item"; 
                item.LatitudePhone = -43; 
                item.LongetudePhone = -23; 
                item.ActivePhone = false; 
                mClient.getTable(Item.class).insert(item, new TableOperationCallback<Item>() {
                     public void onCompleted(Item entity, Exception exception, ServiceFilterResponse response) { 
                        if (exception == null) { 
                             // Insert succeeded 
                                                } else { 
                             // Insert failed
                            Log.d("Insert failed", "*---------------------------------------------------------------*");
                            Log.d("Insert failed", "Error in activity", exception);  // log the error
                            Log.d("Insert failed", "*---------------------------------------------------------------*");
                        } 
                     } 
                });
            } catch (MalformedURLException e) {
                Log.d("MalformedURLException", e.toString());
            }
    }


        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }

    }

    package com.bn7.rotabn7;

    public class Item { 
        public int Id; 
        public String IdPhone;
        public String DateTimePhone;
        public double LatitudePhone;
        public double LongetudePhone;
        public boolean ActivePhone;
        }

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bn7.rotabn7"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />
    <uses-permission android:name="INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.bn7.rotabn7.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Error in activity om.microsoft.windowsazure.mobileservices.MobileServiceException: Error while processing request. com.microsoft.windowsazure.mobileservices.MobileServiceConnection$1.onNext(MobileServiceConnection.java:121) com.microsoft.windowsazure.mobileservices.MobileServiceClient$4.handleRequest(MobileServiceClient.java:429) com.microsoft.windowsazure.mobileservices.MobileServiceConnection.start(MobileServiceConnection.java:92) com.microsoft.windowsazure.mobileservices.RequestAsyncTask.doInBackground(RequestAsyncTask.java:77) com.microsoft.windowsazure.mobileservices.RequestAsyncTask.doInBackground(RequestAsyncTask.java:1) android.os.AsyncTask$2.call(AsyncTask.java:185) java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) java.util.concurrent.FutureTask.run(FutureTask.java:138) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) java.lang.Thread.run(Thread.java:1019) Caused by: java.net.UnknownHostException: ocamorana.azure-mobile.net java.net.InetAddress.lookupHostByName(InetAddress.java:506) java.net.InetAddress.getAllByNameImpl(InetAddress.java:294) java.net.InetAddress.getAllByName(InetAddress.java:256) org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136) org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359) org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) com.microsoft.windowsazure.mobileservices.ServiceFilterRequestImpl.execute(ServiceFilterRequestImpl.java:73) com.microsoft.windowsazure.mobileservices.MobileServiceConnection$1.onNext(MobileServiceConnection.java:101) ---------------------------------------------------------------

1

1 Answers

1
votes

My first guess would be that you're missing the Internet permission from your manifest (as it's complaining about UnknownHost which is usually an indicator that the app can't connect to the internet). Make sure this is in your manifest:

<uses-permission android:name="android.permission.INTERNET" />