Мое приложение для Android не открывает браузер при появлении смс, как мне это сделать?

Мое приложение для Android обнаружит получение sms, а затем откроет браузер для перенаправления на URL-адрес.

В этом случае перенаправление на https://www.example.com/test.php?details=[sms details]&sender=[sms sender name or number] Но это не работает, как мне это сделать?

Я почти уверен, что моя кодировка верна. но это не работает.

.................................................. .................................................. ................................................

Это MainActivity.java

package com.jawad.smsapp;

import android.Manifest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.DexterBuilder;
import com.karumi.dexter.MultiplePermissionsReport;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.multi.MultiplePermissionsListener;
import com.karumi.dexter.listener.single.PermissionListener;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    String TAG = MainActivity.class.getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        Dexter.withActivity(this)
                .withPermissions(Manifest.permission.INTERNET,
                        Manifest.permission.READ_SMS,
                        Manifest.permission.RECEIVE_SMS)
                .withListener(new MultiplePermissionsListener() {
                    @Override
                    public void onPermissionsChecked(MultiplePermissionsReport report) {
                        Toast.makeText(MainActivity.this,"Permission Granted ",Toast.LENGTH_LONG).show();

                    }

                    @Override
                    public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {

                    }
                }).check();
    }
}

А это Sms.java

package com.jawad.smsapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.provider.Telephony;
import android.support.annotation.RequiresApi;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

public class Sms extends BroadcastReceiver{

    private String TAG = Sms.class.getSimpleName();

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


        try {
            Log.d(TAG, "onReceive: ");
            if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {

                String messag = new String();
                String sender = new String();


                SmsMessage[] smsMessages = new SmsMessage[0];
                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
                    smsMessages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
                }


                if (smsMessages == null) {
                    Toast.makeText(context, "Smsmessages empty", Toast.LENGTH_LONG).show();
                    return;
                }
                for (SmsMessage message : smsMessages) {

                    messag = message.getDisplayMessageBody();
                    sender = message.getDisplayOriginatingAddress();
                    Log.d(TAG, "onReceive: " + message.getDisplayMessageBody());
                    Log.d(TAG, "onReceive: " + message.getDisplayOriginatingAddress());
                }


            String url = "https://www.example.com/test.php?details = " + messag + "&sender = " + sender;


            Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

            Log.d(TAG, "onReceive: " + intent1.resolveActivity(context.getPackageManager()));
            if (intent1.resolveActivity(context.getPackageManager()) != null) {

                intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent1);
            }

        }}catch(Exception e)
            {
                Toast.makeText(context,e.toString(),Toast.LENGTH_LONG).show();

            }
            }
        }

Вы его вообще отлаживали? Какая часть не работает? Вы не получаете SMS? Не открываете браузер? Не переходите по правильному URL-адресу? Что-то другое?

Gabe Sechan 26.10.2018 04:47

@ Гейб Сечан - я получаю SMS, но приложение не открывает браузер для перенаправления.

sriteesrimaa tawee 26.10.2018 06:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
46
0

Другие вопросы по теме