내 앱 중 하나에서 동일한 기능을 가지고 있거나 오히려 갖고 있었지만 ...이 기능을 수행 한 모든 연구에서 더 이상 가능하지 않습니다.
restartPackages 권한이되지 않는 이유에 대한 SDK 문서 상태이 :
"이것은 killBackgroundProcesses (문자열) 단지 래퍼 지금, 그것은 휴식을 할 수 있기 때문에 여기에 이전 동작이 더 이상 응용 프로그램을 사용할 수 있습니다 경보를 제거하고 서비스를 중지함으로써 다른 응용 프로그램을 보호 할 수 있습니다. "
이것은 사용자가 볼 수있는 모든 항목을 SDK 응용 프로그램이 더 이상 닫을 수 없다는 것을 의미합니다. 나는이 결정에 매우 실망하며 해결 방법에 대해 알고 있다면 답에도 흥미가 있습니다.
나는이 기능이 활성화 된 상태에서 다른 응용 프로그램을 "중단"할 가능성이 있음을 알고 있지만 이것이 전체 권한 시스템에 대한 것이라고 생각했습니다. 사용자는 앱이 부여하는 권한을 먼저 파악하여 가능한 결과가 무엇인지 파악합니다.
얼마나 많은 사람들이 내 응용 프로그램을 통해 FroYo의 응용 프로그램을 더 이상 닫을 수 없다는 사실을 알려주고 있는지 묻습니다.
편집 :
내가 가지고 올 수 있었던 가장 좋은 점은 한 번의 클릭으로 솔루션은 특정 응용 프로그램에 대한 시스템의 응용 프로그램 정보 페이지로 이동 제공 할 수있는 능력을 추가하는 것입니다.
public Intent getManagePkgIntent(String pkgName)
{
int osVersion = AppMode.getAndroidVersion();
Intent intent = new Intent();
if (osVersion > AppMode.FROYO_SDK_VERSION)
{
//Settings.ACTION_APPLICATION_DETAILS_SETTINGS - THIS CONSTANT ISN'T AVAILABLE UNTIL COMPILING WITH 2.3
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setData(Uri.fromParts("package", pkgName, null));
return intent;
}
else //FROYO And Older...
{
intent.setAction(Intent.ACTION_VIEW);
intent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
String pkgExtra = (osVersion != AppMode.FROYO_SDK_VERSION) ? "com.android.settings.ApplicationPkgName" : "pkg";
intent.putExtra(pkgExtra, pkgName);
}
if (m_pkgMgr.resolveActivity(intent, 0) == null)
return null;
return intent;
}
AppMode.getAndroidVersion() (응용 프로그램도 1.5에서 실행되기 때문에) 안전하게 int로 안드로이드 OS 버전을 얻을 단지 정적 메서드입니다 .. : 아래 내 응용 프로그램에서 사용하는 몇 가지 예제 코드입니다
AppMode.FROYO_SDK_VERSION은 FroYo API 레벨을 나타내는 정적 최종 정수입니다.
당신은 매니페스트에 KILL_BACKGROUND_PROCESSES 권한을 가지고 있습니까? – HXCaine
예 내가 가지고 있고 또한 권한이 누락되는 오류가 발생하지 않습니다. –