6 ارسال در این موضوع قرار دارد

یکی از امکاناتی که اندروید پیاده سازی شده AutoStartUp کردن اپلیکیشن میباشد بدین صورت وقتی که دیواس اندروید ریبوت یا روشن شد برنامه ما بصوت اتوماتیک اجرا شود.

در این آموزش قصد داریم این امکان را پیاده سازی کنیم.

ابتدا یک کلاس به نام BootUpReceiver را ایجاد میکنیم:


 

public class BootUpReceiver  extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

Intent i = new Intent(context, Dashboard.class);

       i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

       context.startActivity(i);

}

در این کلاس ما از کلاس BroadcastReceiver ارث بری کرده و این کلاس باعث میشود در پس زمینه اجرا شود ، این کلاس باعث میشود همیشه در حال اجرا باشد.

بعد از روشن شدن دیوایس باعث میشود اکتیویتی Dashboard باز شود.

سپس در  فایل اندروید مانیفست پروژه:

 

 

<aplication>  
<receiver android:enabled="true" android:name=".BootUpReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
</aplication>

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

 

 

انجمن پی سی دروید....

 

 

 

2 کاربر پسند شده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

جناب مدیر واقعا خسته نباشید

خیلی آموزش هایتان کاربردی و مفید است .

باز هم ممنون از این همه تلاش شما.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

من میتونم توی این کلاس یه دستور بنویسیم که همیشه هر 5 دقیقه یکبار اجرا بشه ؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اره میتونید هر دستوری که میخواهید بنویسید.فقط نباید UI باشد

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

این کد برنامه منه که قراره در Background اجرا بشه و هر پنج دقیقه یکبار اطلاعاتی را به یک وب سرویس saop ارسال کنه ، برنامه خطایی نداره اما بعد از نصب روی گوشی هیچ کاری انجام نمیده ، لطف می کنید بررسی کنید ؟

package com.example.sendgpspointtosite;import java.lang.reflect.Method;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.provider.Settings;import android.telephony.TelephonyManager;import android.util.Log;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;public class SendGpsPoint extends BroadcastReceiver{private static String SOAP_ACTION1 = "http://tempuri.org/InsertFromMobile";   private static String NAMESPACE = "http://tempuri.org/";   private static String METHOD_NAME1 = "InsertFromMobile";   private static String URL = "http://gps.mashhad-cinema.ir/Services/GPSPointWS.asmx?WSDL";private static String IMEI;private static String GeographicLenght;private static String WidthLenght;private static String Height;private static String Speed;private static String Direction;private Context ctext;  public void onReceive(Context context, Intent intent) {        // TODO Auto-generated method stub	final Handler handler = new Handler();       final Thread r = new Thread() {           public void run() {               	toggleGPS(true);       		GetGpsLocation();       		handler.postDelayed(this, 120000);       		turnData(true);       		handler.postDelayed(this, 30000);       		TelephonyManager tManager = (TelephonyManager)ctext.getSystemService(Context.TELEPHONY_SERVICE);       		IMEI = tManager.getDeviceId();       		insertToHostDataBase();       		toggleGPS(false);       		turnData(false);               handler.postDelayed(this, 300000);           }       };        r.start();   }  private void insertToHostDataBase(){	SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME1);              //Use this to add parameters       request.addProperty("IMEI",IMEI.toString());       request.addProperty("GeographicLenght",GeographicLenght.toString());       request.addProperty("WidthLenght",WidthLenght.toString());       request.addProperty("Height",Height.toString());       request.addProperty("Speed",Speed.toString());       request.addProperty("Direction",Direction.toString());       //Declare the version of the SOAP request       SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);       envelope.setOutputSoapObject(request);       envelope.dotNet = true;       try {             HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);              //this is the actual part that will call the webservice             androidHttpTransport.call(SOAP_ACTION1, envelope);             // Get the SoapResult from the envelope body.             SoapObject result = (SoapObject)envelope.bodyIn;             if(result != null)             {                   //Get the first property and change the label text             }             else             {             }       } catch (Exception e) {       }}private void GetGpsLocation(){	try{        LocationManager locationManager = (LocationManager)ctext.getSystemService(Context.LOCATION_SERVICE);        final boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.  GPS_PROVIDER);        if (gpsEnabled) {            //request for location updates            LocationListener locationListener = new MyLocationListener();            locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 10000, 0, locationListener);            Location myLocation;            myLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);            if(myLocation != null)            {                //we have a location!!            	GeographicLenght = 	Location.convert(myLocation.getLatitude(), Location.FORMAT_DEGREES);            	WidthLenght = Location.convert(myLocation.getLongitude(), Location.FORMAT_DEGREES);            	Height = Location.convert(myLocation.getAltitude(), Location.FORMAT_DEGREES);            	Speed = Float.toString(myLocation.getSpeed());             	Direction = "Unknow";            }        }        }        catch(Exception e)        {        }}public class MyLocationListener implements LocationListener   {   public void onLocationChanged(Location location) {   	location.getLatitude();   	location.getLongitude();       // TODO get accuracy, direction and speed.   }   public void onStatusChanged(String provider, int status, Bundle extras) {       // TODO Auto-generated method stub   }   public void onProviderDisabled(String provider) {       // TODO Auto-generated method stub   }   public void onProviderEnabled(String provider) {       // TODO Auto-generated method stub   }   }private void toggleGPS(boolean enable) {    String provider = Settings.Secure.getString(ctext.getContentResolver(),         Settings.Secure.LOCATION_PROVIDERS_ALLOWED);    if(provider.contains("gps") == enable) {        return; // the GPS is already in the requested state    }    final Intent poke = new Intent();    poke.setClassName("com.android.settings",         "com.android.settings.widget.SettingsAppWidgetProvider");    poke.addCategory(Intent.CATEGORY_ALTERNATIVE);    poke.setData(Uri.parse("3"));    ctext.sendBroadcast(poke);}void turnData(boolean ON){    try{         Method dataConnSwitchmethod;        Class telephonyManagerClass;        Object ITelephonyStub;        Class ITelephonyClass;        TelephonyManager telephonyManager = (TelephonyManager) ctext.getSystemService(Context.TELEPHONY_SERVICE);        telephonyManagerClass = Class.forName(telephonyManager.getClass().getName());    Method getITelephonyMethod = telephonyManagerClass.getDeclaredMethod("getITelephony");    getITelephonyMethod.setAccessible(true);    ITelephonyStub = getITelephonyMethod.invoke(telephonyManager);    ITelephonyClass = Class.forName(ITelephonyStub.getClass().getName());    if (ON) {         dataConnSwitchmethod = ITelephonyClass.getDeclaredMethod("enableDataConnectivity");     } else {        dataConnSwitchmethod = ITelephonyClass.getDeclaredMethod("disableDataConnectivity");    }    dataConnSwitchmethod.setAccessible(true);    dataConnSwitchmethod.invoke(ITelephonyStub);    }catch(Exception e){          Log.e("Error:",e.toString());    }}}

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کاربر گرامی لطفا در تالار سوالات و رفع مشکل سوال خود را مطرح کنید،این تالار فقط برای آموزش میباشد. سوال شما تا ساعتی دیگر حذف خواهد شد پس آن را به تالار مربوطه انتقال دهید.:exclamation:

تاپیک قفل شد

تشکر

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری