Hi, I want to replace GcmNetworkManager in my BroadcastReceiver project. Looked at some articles and made for example:
1) Added to the manifest:
<service android:name=".WakeOnLanService" android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" android:exported="true"> <intent-filter> <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/> </intent-filter> </service> 2) Service:
public class WakeOnLanService extends GcmTaskService { @Override public int onRunTask(TaskParams taskParams) { return GcmNetworkManager.RESULT_SUCCESS; } @Override public int onStartCommand(Intent intent, int i, int i1) { Toast.makeText(this,"Выполнилось",Toast.LENGTH_SHORT).show(); return super.onStartCommand(intent, i, i1); } } 3) Added to activity:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GcmNetworkManager mGcmNetworkManager = GcmNetworkManager.getInstance(this); Task task = new OneoffTask.Builder() .setService(WakeOnLanService.class) .setExecutionWindow(0, 2) .setTag("MyTag") .setUpdateCurrent(true) .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED) .setRequiresCharging(false) .build(); mGcmNetworkManager.schedule(task); } } But for some reason this approach does not work. Tell me, maybe I did something wrong or did not finish it? And how to make the service start when the Internet appears?