2015-06-12 1 views
0

Прошу прощения за мой плохой английский, я из Германии. Я пытаюсь объяснить свою проблему.Android - начальный сервис по загрузке и wifi на

Я запустил сервис, если смартфон загрузился и подключено к Интернету. Надеюсь, ты меня поймешь.

Это мой Автозапуск

public class Autostart extends BroadcastReceiver { 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 

     if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { 
      try { 
       context.startService(new Intent(context, SpyService.class)); 
      } catch (Exception ex) { 

      } 
     } 
    } 
} 

и это мой манифест

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="de.caglar.spyme" 
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="19" 
     android:targetSdkVersion="21" /> 

    <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" /> 
    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" /> 
    <uses-permission android:name="android.permission.GET_TASKS"/> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <uses-permission android:name="android.permission.READ_CALL_LOG" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 

     <receiver android:name=".Autostart" android:enabled="true" android:exported="false"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      </intent-filter> 
     </receiver> 

     <activity android:name=".StartService"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <service 
      android:name=".SpyService" 
      android:enabled="true" /> 
    </application> 

</manifest> 

Если я перезагрузить телефон и открыть WLAN, служба не запущена. Зачем?

+0

У вас есть ответ [здесь] (http://stackoverflow.com/questions/4562734/android-starting-service-at-boot-time). –

+0

Я пробовал то же самое, но это не работает –

+0

Вы пытались вместо этого наблюдать за изменениями в подключении, вместо того, чтобы прослушивать аккумулятор или загрузчик? Если ваш ресивер срабатывает при изменении соединения, вы можете начать работу, когда подключен WiFi. – Knossos

ответ

0

используйте этот код в своей трансляции.

public class Autostart extends BroadcastReceiver { 

     @Override 
     public void onReceive(Context context, Intent intent) { 

      ConnectivityManager connectivityManager = (ConnectivityManager) 
      context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo activeNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
      boolean isConnected = activeNetInfo != null && activeNetInfo.isConnectedOrConnecting(); 
      if (isConnected)  
       // start your service 
      } 
    } 
Смежные вопросы