2012-03-15 3 views
3

나는 task manager를 부드럽게하고 싶다. android.intent.action.BOOT_COMPLETED를 사용하는 모든 앱을 확인하고 싶다. 모바일 시작이 실행될 때 자동 시작을 사용하지 않으려한다. 내가BOOT_COMPLETED로 앱 실행을 비활성화하는 방법

Intent intent = new Intent(android.intent.action.BOOT_COMPLETED); 

List<ResolveInfo> listApp = packageManager.queryIntentActivities(intent, 0); 
for (ResolveInfo res : listApp) { 
    Log.e("Camera Application Package Name and Activity Name",res.activityInfo.packageName + " " + res.activityInfo.name)); 
} 

하지만, 내가 그것을 완료 루트 권한을 필요로하는 경우 어떤 조언이

+0

좋은 질문 + 1. 또한 응답을 기다리고 있습니다. – Sameer

+0

업데이트 된 답변을보세요. – user370305

답변

1

위의 /data/system/packages.xml 파일을 변경하여 android.intent.action.BOOT_COMPLETED 권한을 제거 할 수 없습니다.

이것은 시작시에 모든 apk (즉 앱) 매니페스트 파일을 구문 분석하기 때문에 android 프레임 워크가 android.intent.action.BOOT_COMPLETED 권한을 볼 때 그 시간에 앱을 호출하기 때문입니다.

따라서 파일을 수정해도 아무런 효과가 없습니다. 나는 이것을 시도했다 - 나를 믿어 라. (사용자가 andorid 프레임 워크를 수정하고, 다시 컴파일하고, 휴대 전화로로드하는 것과는 별도로) 허락을 제거 할 apk 파일을 수동으로 편집하는 것입니다.

분명히 마음이 희미하지 않습니다!

4

이 응용 프로그램은 당신이 같은 안드로이드 PackageManagerResolveInfo 클래스 뭔가를 사용할 수 있습니다 BOOT_COMPLETED 의도 조치를받는 확인하려면 나타날 수 단서가 없다 생각하면 다른 응용 프로그램의 사용 권한을 변경할 수 없습니다. 그래서 당신은 BOOT_COMPLETED 시간에 시작하는 것을 막을 수 없습니다. 이것을 원한다면 루트 허가이어야합니다. 안드로이드 프레임 워크 구조에서

, 설치된 모든 응용 프로그램의 정보를 포함 /data/system/packages.xml에 사용 포함 권한 :

예를 LBE Privacy Guard

UPDATE가, 당신이 그것을 할 수 있도록 안드로이드 시장에서 응용 프로그램 중 하나가 , (나는 결코 이것을 시도해 본 적이 없으며 그 여부도 모르겠다.)이 파일을 수정하면 원하는 것을 얻을 수있다. 고마워.

+0

내가 루트 권한이 있다면, 그것을 중지시키는 명령을 호출하는 방법과 그것을 수정하는 packages.xml을 얻는 방법은 무엇입니까? – pengwang

+0

내가 res.activityInfo.packageName을 알고있다. 루트 권한을 사용하여 중지시킬 수 있다면 사용할 수 있지만 어떤 명령을 사용할 수 있습니까? – pengwang

+0

어떤 명령도 필요하지 않습니다. 이 파일의 권한을 제거하고 해당 파일을 다시 저장하면 장치를 다시 시작하면 제거 권한이 적용됩니다. – user370305

0

구성 요소가 무엇인지 (예 : 앱의 매니페스트를보고), 다음을 사용하여 adb 명령 줄 또는 루트 셸에서 구성 요소를 비활성화 할 수 있습니다. pm disable package.name/component.class.name

자동 시작 응용 프로그램은 이. 그것은 당신의 앱이 GPL이라면 당신이 당신의 앱을 위해 재사용 할 수있는 GPL (나는 생각한다) 소스 코드를 가지고있다.

관련 문제