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" />

 

 

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

 

 

 

1 کاربر پسند دیده است

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


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

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

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

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

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


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

من میتونم توی این کلاس یه دستور بنویسیم که همیشه هر 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:

تاپیک قفل شد

تشکر

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


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

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط niloobani
      دوستان به یک برنامه نویس و توسعه دهنده ios و اندروید در یک شرکت معتبر نیاز دارم. لطفا در صورت داشتن شرایط پیام بدید
      http://banijob.com/company/پیشگامان-هوا-و-انرژی/jobs/APP-Developer
    • توسط AliMirzaei
      سلام
      من موقع ران کردن کد در ecilpse با اروری مواجه شدم! ممنون میشم مشکل من را حل کنید!
      مشکل در تصاویر زیر آمده است!
      مدل سیستم+نسخه JDK ,JRE + نسخه ecilpse در تصاویر آمده!
       
       
       





    • توسط b.kordtabar
      چگونه می توان در اپلیکیشن اندروید قابلیت آپ دیت اضافه کرد؟
    • توسط Omid Zakeri
      ویجت یک برنامه ی کوچک و یا یک کنترل از برنامه ی اندروید شما می باشد که در صفحه ی home  قرار گرفته است.  ویجت ها می توانند به راحتی در دسترس باشند، چرا که به شما اجازه می دهند تا برنامه های مورد علاقه ی خود را روی صفحه home قرار دهید تا به سرعت به آنها دسترسی داشته باشید. احتمالا چند ویجت متداول از جمله ویجت موسیقی، آب و هوا و ساعت، را دیده اید.
      ویجت ها می توانند انواع مختلفی داشته باشند از قبیل ویجت اطلاعات، ویجت های مجموعه، ویجت های کنترل و ویجت های چندگانه. اندروید یک چارچوب کامل به ما ارائه می دهد تا ویجت های خود را گسترش دهیم.
       
      Widget - XML file
      برای ایجاد یک ویجت کاربردی، ابتدا چیزی که نیاز دارید، شی Object AppWidgetProviderInfo است که شما در یک فایل XML ویجت جداگانه تعریف می کنید. برای انجام این کار، بر روی پروژه خود راست کلیک کرده و یک پوشه جدید به نام xml ایجاد کنید. حالا روی پوشه تازه ایجاد شده راست کلیک کرده و یک فایل XML جدید ایجاد کنید. نوع منبع فایل XML باید به AppWidgetProvider تنظیم شود. در فایل xml برخی از خواص را به صورت زیر تعریف می کنید:
      <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="146dp" android:updatePeriodMillis="0" android:minHeight="146dp" android:initialLayout="@layout/activity_main"> </appwidget-provider> Widget - Layout file
      حالا شما باید طرح ویجت خود را در فایل پیش فرض XML خود تعریف کنید. شما می توانید قطعات را برای تولید xml خودکار بکشید.
      Widget - Java file
      پس از تعریف طرح، در حال حاضر یک فایل JAVA جدید ایجاد کنید یا از موجود استفاده کنید و آن را با کلاس AppWidgetProvider گسترش دهید و روش بهروزرسانی آن را به صورت زیر تعریف کنید.
      در روش به روز رسانی، شما باید شیء دو کلاس را که PendingIntent و RemoteViews هستند تعریف کنید. نحو آن :
      PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);  
      Widget - Manifest file
      شما همچنین باید AppWidgetProvider را در فایل manifest خود به شرح زیر اعلام کنید:
      <receiver android:name="ExampleAppWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" /> </receiver>  
      MainActivity.java
      package com.example.omidza.myapplication; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.widget.RemoteViews; import android.widget.Toast; public class MainActivity extends AppWidgetProvider{ public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) { for(int i=0; i<appWidgetIds.length; i++){ int currentWidgetId = appWidgetIds[i]; String url = "http://www.tutorialspoint.com"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse(url)); PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main); views.setOnClickPendingIntent(R.id.button, pending); appWidgetManager.updateAppWidget(currentWidgetId,views); Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show(); } } } res/layout/activity_main.xml
      <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:transitionGroup="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point" android:id="@+id/textView" android:layout_centerHorizontal="true" android:textColor="#ff3412ff" android:textSize="35dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Widget" android:id="@+id/button" android:layout_centerHorizontal="true" android:layout_marginTop="61dp" android:layout_below="@+id/textView" /> </RelativeLayout> res/xml/mywidget.xml.
      <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="146dp" android:updatePeriodMillis="0" android:minHeight="146dp" android:initialLayout="@layout/activity_main"> </appwidget-provider> AndroidManifest.xml
      <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.omidza.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name=".MainActivity"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/mywidget"></meta-data> </receiver> </application> </manifest>  
    • توسط saeed1366412
      با سلام میخواستم بدون داخل صفحه xml چطوری اعداد به صورت توان دار داخل textview بنویسم 
       

  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin
  • فایل