마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱 자신이 업데이트 됬는지 체크하고 싶어요

0 추천

구글링을 통해 Receiver를 사용하면 된다고 해서 사용하였지만 로그를 찍어도 출력되지가 않네요.

public class PackageReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent){
        String action = intent.getAction();
        String packageName = intent.getData().getSchemeSpecificPart();
        if(action.equals(Intent.ACTION_PACKAGE_ADDED)){
            //application installed
            Log.e("","앱 설치완료." + packageName);
        } else if(action.equals(Intent.ACTION_PACKAGE_REMOVED)){
            //application removed
            Log.e("","앱 제거완료." + packageName);
        } else if(action.equals(Intent.ACTION_PACKAGE_REPLACED)){
            //application update
            Log.e("","앱 업데이트완료." + packageName);
        }
    }
}
<receiver android:name="com.aaa.PackageReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <action android:name="android.intent.action.PACKAGE_REPLACED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>

IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_REPLACED);
        filter.addDataScheme("package");
        registerReceiver(mPackageReceiver, filter);

잘못된게 뭔지 리시버가 작동하지 않습니다....

하마씨 (640 포인트) 님이 2017년 6월 26일 질문

1개의 답변

0 추천
 
채택된 답변

package broadcast는 manifest에서 지정이 가능하므로 IntentFilter를 사용하지 않으셔도 됩니다

ACTION_PACKAGE_REPLACED 같은 경우는 업데이트 되고 receive되는데 시간이 조금 걸리므로 조금 기다리시면 되겠습니다

prague (26,200 포인트) 님이 2017년 6월 26일 답변
하마씨님이 2018년 3월 26일 채택됨
...