Android Geopoint: Sim toolkit stopped

寵の児 提交于 2019-12-25 03:37:16

问题


    Hi Friends today its the second question i am posting in the forum. I am a beginner in programming. So its very hard for me to find the error in the code when nothing is displayed in the Logcat.  
    My problem is i am doing a gps based application to notify me when i reach 10 meters away from a place. but when i install the program me in my device it shows "sim toolkit stopped" and it shuts down ...i am pasting my whole code and console data below this. please have a look and tell me the errors if any.

I am actually trying to do asynchronous tasking. but i am not sure,how far is my code correct. Please help me.

    MainActivity.java............................................................................................................................................................

    package com.example.mobiletrackerslave;

    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.widget.EditText;


    public class MainActivity extends ActionBarActivity {

        public EditText text1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
           text1 =(EditText) findViewById(R.id.text1);
            Intent intent = new Intent(this, TrackService.class);

            startService(intent);


        }

        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
            finish();
        }


    }




    TrackService.java.......................................................................................................................



    package com.example.mobiletrackerslave;

    import android.app.Activity;
    import android.app.IntentService;
    import android.app.Service;
    import android.content.Context;
    import android.content.Intent;
    import android.location.Location;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.os.IBinder;
    import android.widget.EditText;

    import com.example.android.location.LocationUtils;
    import com.google.android.gms.common.ConnectionResult;
    import com.google.android.gms.common.GooglePlayServicesClient;
    import com.google.android.gms.location.LocationClient;
    import com.google.android.gms.location.LocationListener;
    import com.google.android.gms.location.LocationRequest;

    public class TrackService extends IntentService implements LocationListener,
            GooglePlayServicesClient.ConnectionCallbacks,
            GooglePlayServicesClient.OnConnectionFailedListener {

        //boolean uploaded = false;
        private Context context;
        String Lat, Long;
        // A request to connect to Location Services
        private LocationRequest mLocationRequest;

        //List<?> pkgAppsList;
        //ArrayList<ArrayList<String>> list;
        //Context context;
        //ArrayList<String> iteminserted = new ArrayList<String>();

        private LocationClient mLocationClient;

        // ArrayList<ArrayList<String>> UnUploadedData = new
        // ArrayList<ArrayList<String>>();


        //@Override
        //public IBinder onBind(Intent intent) {
            //return null;
        //}
        //public TrackService() {
            //super("TrackService"); 
         //}
        public TrackService() {
            super("Trackservice"); 

             }



        @Override
        public void onCreate() {
            super.onCreate();
            // Create a new global location parameters object
            mLocationRequest = LocationRequest.create();
            context = getApplicationContext();
            /*
             * Set the update interval
             */
            // mLocationRequest
            // .setInterval(LocationUtils.UPDATE_INTERVAL_IN_MILLISECONDS);
            mLocationRequest.setInterval(1000 * 60 * 2);// Every 2 minute

            // Use high accuracy
            mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

            // Set the interval ceiling to one minute
            mLocationRequest
                    .setFastestInterval(LocationUtils.FAST_INTERVAL_CEILING_IN_MILLISECONDS);
            mLocationClient = new LocationClient(this, this, this);

        }





        /*
         * Called by Location Services when the request to connect the client
         * finishes successfully. At this point, you can request the current
         * location or start periodic updates
         */
        @Override
        public void onConnected(Bundle bundle) {

            startPeriodicUpdates();

        }

        /**
         * Report location updates to the UI.
         * 
         * @param location
         *            The updated location.
         */
        @Override
        public void onLocationChanged(Location location) {
            System.out.println(location.getLatitude() + " "+ location.getLongitude());
            Lat = location.getLatitude() + "";
            Long = location.getLongitude() + "";
            //if (isConnectingToInternet())
                new UploadLocationInfo().execute();
            // if (uploaded)
            // this.stopSelf();
            }

        /**
         * In response to a request to start updates, send a request to Location
         * Services
         */
        private void startPeriodicUpdates() {

            mLocationClient.requestLocationUpdates(mLocationRequest, this);

        }

        /**
         * In response to a request to stop updates, send a request to Location
         * Services
         */
        private void stopPeriodicUpdates() {
            mLocationClient.removeLocationUpdates(this);

        }

        //public boolean isConnectingToInternet() {
            //ConnectivityManager connectivity = (ConnectivityManager) this
                //  .getSystemService(Context.CONNECTIVITY_SERVICE);
            //if (connectivity != null) {
                //NetworkInfo[] info = connectivity.getAllNetworkInfo();
                //if (info != null)
                    //for (int i = 0; i < info.length; i++)
                        //if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                            //return true;
                        //}

            //}
            //return false;
        //}



        public class UploadLocationInfo extends AsyncTask<Void, Void, Void> {


            @Override
            protected Void doInBackground(Void... params) {
                // Uploading Application List
                //ArrayList<NameValuePair> LOCATION = new ArrayList<NameValuePair>();
                //LOCATION.add(new BasicNameValuePair("LAT", Lat));
                //LOCATION.add(new BasicNameValuePair("LONG", Long));

                //TelephonyManager telephonyManager = (TelephonyManager) getApplicationContext()
                    //  .getSystemService(getApplicationContext().TELEPHONY_SERVICE);
                //IMEI = telephonyManager.getDeviceId();
                //LOCATION.add(new BasicNameValuePair("IMEI", IMEI));
                double x = Double.parseDouble(Long);
                double y = Double.parseDouble(Lat);
                EditText text1 = (EditText) ((Activity)context).findViewById(R.id.text1);
                text1.setText("lat"+y+"Log"+x);
                double a = 48.6800000;
                double b = 2.2100000;  
                float[] results = new float[1];
                Location.distanceBetween(y, x, b, a, results);
                float distanceInMeters = results[0];
                boolean isWithin10m = false;
                if( distanceInMeters < 20)
                {
                 isWithin10m = true;
                }



                System.out.println("Uploading New Location");

               if(isWithin10m){

                try {
                    //open a web page


                } catch (Exception e) {
                    e.printStackTrace();
                }
                }else{
                    text1.setText("nothing to display");

                }
                return null;
            }
        }

        @Override
        public void onConnectionFailed(ConnectionResult arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onDisconnected() {
            // TODO Auto-generated method stub

        }
        @Overrideenter code here
        public void onDestroy() {
            // If the client is connected
            System.out.println("Destroy");
            if (mLocationClient.isConnected()) {
                stopPeriodicUpdates();
            }
            // After disconnect() is called, the client is considered "dead".
            mLocationClient.disconnect();

            super.onDestroy();
        }

        @Override
        public IBinder onBind(Intent intent) {
            // TODO Auto-generated method stub
            return null;
        }


        @Override
        protected void onHandleIntent(Intent intent) {
            // TODO Auto-generated method stub

        }








    }



Manifest.XML.....................................................................................................................



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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.mobiletrackerslave.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>
        <service android:name="com.example.mobiletrackerslave.TrackService" ></service>

    </application>

</manifest>

CONSOLE.............................................................................................................

eTrackerSlave2] ------------------------------
[2014-07-22 15:32:23 - MobileTrackerSlave2] Android Launch!
[2014-07-22 15:32:23 - MobileTrackerSlave2] adb is running normally.
[2014-07-22 15:32:23 - MobileTrackerSlave2] Performing com.example.mobiletrackerslave.MainActivity activity launch
[2014-07-22 15:32:23 - MobileTrackerSlave2] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.
[2014-07-22 15:32:26 - MobileTrackerSlave2] Application already deployed. No need to reinstall.
[2014-07-22 15:32:26 - MobileTrackerSlave2] Starting activity com.example.mobiletrackerslave.MainActivity on device 02121ab5094d43b3
[2014-07-22 15:32:26 - MobileTrackerSlave2] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.mobiletrackerslave/.MainActivity }

来源:https://stackoverflow.com/questions/24888979/android-geopoint-sim-toolkit-stopped

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!