Android-приложение с навигацией по Google Maps и наложением текста - PullRequest
2 голосов
/ 11 октября 2011

Я искал эту проблему часами ... Можно ли запустить навигацию по картам Google в моем приложении и отобразить текстовое представление с некоторой информацией о нем? Мне нужно создать приложение, которое передает адрес назначения в навигационную систему «Карты» и во время работы «Навигации» отображать текстовое представление с названием модели автомобиля в нижней части приложения. Это выполнимо?

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Можно ли запустить навигацию по картам Google в моем приложении и отобразить текстовое представление с некоторой информацией о нем?

Вы не можете встраивать другие приложения в свои и не можете добавлять свои собственные виджеты в пользовательский интерфейс другого приложения.

0 голосов
/ 07 декабря 2017

Попробуйте это.

public class FloatingOverNewBooking extends Service {

    private WindowManager windowManager;
    private FrameLayout frameLayout;
    private String str_ride_id;
    public static final String BROADCAST_ACTION = "com.yourpackage.YourActivity";

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        timerLocation = new Timer();
        createFloatingBackButton();
    }

    Timer timerLocation;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // to receive any data from activity
        str_ride_id = intent.getStringExtra("RIDE_ID");
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (frameLayout != null) {
            //((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(frameLayout);

            windowManager.removeView(frameLayout);
            frameLayout = null;
        }

        timerLocation.cancel();
    }

    private void createFloatingBackButton() {
        ClientLocatedActivity.isFloatingIconServiceAlive = true;
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT);
        WindowManager.LayoutParams windowManagerParams = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY ,
                WindowManager.LayoutParams. FLAG_DIM_BEHIND, PixelFormat.TRANSLUCENT);

        params.gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL;
        windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
        frameLayout = new FrameLayout(this);

        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        // Here is the place where you can inject whatever layout you want in the frame layout
        layoutInflater.inflate(R.layout.share_new_booking_alert, frameLayout);

        final TextView txtName = (TextView) frameLayout.findViewById(R.id.txtName);
        Button backOnMap = (Button) frameLayout.findViewById(R.id.dialog_button);

        if(!ObjectUtility.isNullOrEmpty(Config.Share.newPassenger)){
            txtName.setText(Config.Share.newPassenger.getUsername());
        }


        backOnMap.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {

                    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
                    am.killBackgroundProcesses("com.google.android.apps.maps");
                    //MainActivity.getInstance().getShareRideDataById("go");
                    FloatingOverNewBooking.this.stopSelf();
                    ClientLocatedActivity.isFloatingIconServiceAlive = false;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });

        windowManager.addView(frameLayout, windowManagerParams);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...