Наставлять активность с приложения в другом клеточный Интернет [закрытый] путь

Тема состоит в том, что я хочу инициализировать активность посредством другого приложения, которое установлено в другом устройстве, и также смогите инициализировать эту активность посылая переменные из-за Интернета. Чтобы объяснять лучше я реализовал график, который мог бы объяснять разработку активности, которая хочет осуществиться.

Actividad a realizar

5
задан 18.02.2017, 05:22
0 ответов

Si es es posible, bajo de algunas circunstancias. Смешение различных методов общения, в том числе и в обычном порядке.

Осуществление и демонстрация манифеста (en este caso escucha a un sms que cumle con con con Критерии algunos):

    <receiver
        android:name=".controller.SmsReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BROADCAST_SMS">
        <intent-filter android:priority="999">
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

Luego Implemento El Слушатель

public class SmsReceiver extends BroadcastReceiver {
    public SmsReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        // construir el mensaje del sms
        Bundle pudsBundle = intent.getExtras();
        Object[] pdus = (Object[]) pudsBundle.get("pdus");
        SmsMessage messages = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            messages = createFromPdu((byte[]) pdus[0],intent.getStringExtra("format"));
        } else {
            messages = createFromPdu((byte[]) pdus[0]);
        }
        Log.i(TAG,  messages.getMessageBody());
        // el criterio en mi caso de uso es un numero configurado en mis preferencias
        // por supuesto puedes cambiarlo por algun dato que filtras del mensaje
        String origin = SystemService.getInstance().getPrefs(context).getString("alarm_phone","");

        // aquí compruebo si la sms cumple con mi criterio y armo un intent
        // tu puedes armar este intento libremente a tu gusto
        if (messages.getOriginatingAddress().endsWith(origin)){
            Intent resend = new Intent(I.SMS_RECEIVED);
            resend.putExtra("displayOrigin", messages.getDisplayOriginatingAddress());
            resend.putExtra("origin", messages.getOriginatingAddress());
            resend.putExtra("message", messages.getMessageBody());
            resend.putExtra("dateSent",messages.getTimestampMillis());
            context.sendBroadcast(resend);

            //does not abort on Marshmallow so what the heck
            abortBroadcast();
        }
    }
}

En la actividad que arrangecas (o activas) общее намерение puedes первоначально для коммюникации, в том числе и для UDP, sobre un Redis, sobre una подключен TCP и un servidor que do - tu решает el sabor. Y por supuesto puedes remplazar el Listener por otra señal entrante que un sms,

2
ответ дан 03.12.2019, 16:57