Задать вопрос
@Chesterfield25

Как открыть другое приложение в нужном мне фрагменте?

У меня есть MusicFragment Я хочу открыть в этом фрагменте YOUTUBE_MUSIC но нечего не получается даже с другими приложениями.
Мои зависимости:

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>


public class MusicFragment extends Fragment {

    private static final int REQUEST_CODE_OVERLAY_PERMISSION = 1001;
    private static final String YOUTUBE_MUSIC_PACKAGE = "com.google.android.apps.youtube.music";

    public MusicFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View rootView = inflater.inflate(R.layout.fragment_music, container, false);

        // Проверяем и запрашиваем разрешения
        checkPermissions();

        return rootView;
    }

    private void checkPermissions() {
        // Проверяем разрешение на отображение поверх других приложений (SYSTEM_ALERT_WINDOW)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(requireContext())) {
            requestOverlayPermission();
        }
        // Открываем YouTube Music
        openYouTubeMusic();
    }

    private void requestOverlayPermission() {
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                Uri.parse("package:" + requireContext().getPackageName()));
        startActivityForResult(intent, REQUEST_CODE_OVERLAY_PERMISSION);
    }

    private void openYouTubeMusic() {
        Intent intent = getActivity().getPackageManager().getLaunchIntentForPackage(YOUTUBE_MUSIC_PACKAGE);
        if (intent != null) {
            startActivity(intent);
        } else {
            Toast.makeText(requireContext(), "YouTube Music app not found", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE_OVERLAY_PERMISSION) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Settings.canDrawOverlays(requireContext())) {
                // Разрешение на отображение поверх других приложений предоставлено
                openYouTubeMusic();
            } else {
                // Пользователь не предоставил разрешение, выводим сообщение об ошибке
                Toast.makeText(requireContext(), "Permission denied", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы