MIUI 10은 서비스 시작 활동을 허용하지 않습니다-Xiaomi Redmi Note


9

내 앱에는 서비스와 활동이 있습니다. 서비스에서 활동은 다음 코드로 호출됩니다.

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

플래그가 없어도 일반적으로 활동 창이 올바른 레이아웃으로 표시됩니다. 그러나 Android 7이 설치된 Xiaomi Redmi Note 4에서는 활동 레이아웃이 표시되지 않습니다. logcat에는 다음 줄만 표시됩니다.

I / 타임 라인 : 타임 라인 : Activity_launch_request 시간 : 281438674 의도 : 의도 {flg = 0x30000000 cmp = com.test.app / .MainActivity}

Android 7이 설치된 다른 기기에서 서비스가 성공적으로 활동을 시작할 수 있기 때문에 이것이 Android 7 (API 24) 문제가 아니라고 생각합니다. MIUI가 활동 시작을 방해하고 있다고 생각합니다.

매니페스트에서 활동이 정의 된 방식을 변경하려고했습니다. 또한 몇 가지 다른 플래그로 시도했습니다. 모든 테스트에 실패했습니다. 나는 활동을 시작할 수 없었다. 최악의 문제는 로그에 오류 / 예외가 없다는 것입니다.

이것에 대한 아이디어가 있습니까?


MIUI 11에서 동일한 문제
AlexS

답변:


12

백그라운드에서 실행되는 동안 시스템 설정 앱> 기타 권한> 팝업 창 표시의 앱 정보 화면에서.

이것은 MIUI 11에서 소개 된 것 같습니다.

편집 : 여기 내가 사용하는 코드가 있습니다. 에서의 권한 목록에 추가합니다 RecyclerView.

Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class);
String miui = (String) get.invoke(c, "ro.miui.ui.version.name");
if (miui != null && miui.contains("11")) {
            PermissionData mPopup = new PermissionData();
            mPopup.text = "Other permissions > Display pop-up while in background";
            mPopup.onClickListener = new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                    Uri uri = Uri.fromParts("package", getPackageName(), null);
                    intent.setData(uri);
                    startActivity(intent);
                }
            };

            mPermissionData.add(mPopup);
}

업데이트 :이 권한이 부여 된 경우 이미 실행중인 서비스를 사용할 수 확인 더미 투명 활동을 시작하고, IN에 onCreateA의 호출 다시 LocalBroadcastManager또는 유사한 당신은이 부여 된 것을 알고 있습니다. 그것은 추악한 해결책이지만 일부에게는 유용 할 수 있습니다.


감사합니다. 그게 진짜 문제입니다. 앱 내에서이 권한을 요청할 수있는 방법이 있습니까? 또는 프로그래밍 방식으로 추가 하시겠습니까?
ilker Aktuna

내가 아는 것은 없습니다. 나는 응용 프로그램 정보 화면으로 리디렉션 및 활성화를 말하고 그 그들은 ... MIUI에 있다면
알렉스 뉴먼

하지만 그렇게하려면 앱을 시작해야합니다. 어떻게합니까? 알림을 통해?
ilker Aktuna

앱을 처음 구성 할 때 다른 필수 권한을 요청하면 서비스가 아닌 기본 앱에서 요청합니다.
Alex Newman

1
코드를 변경하지 않고 백그라운드 서비스에서 시작된 활동을 부여하는 것처럼 MIUI에 유용한 정보입니다.
Panache
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.