티스토리 뷰
마켓에서 어플리케이션을 받아서 설치하거나, 삭제할 때도 이벤트가 발생합니다.
이 이벤트를 받으려면 BroadcastReceiver를 이용하면 됩니다.
#1.
일단, AndroidManifest.xml 파일에 다음과 같이 BroadcastReceiver를 등록합니다.
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".MainActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".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>
</application>
#2.
BroadcastReceiver를 상속받은 PackageReceiver 클래스를 생성합니다.
package plugin.prototype.app;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
public class PackageReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String packageName = intent.getData().getSchemeSpecificPart();
String action = intent.getAction();
if(action.equals(Intent.ACTION_PACKAGE_ADDED))
{
Log.d("", "[snowdeer] Package ADDED : " + packageName);
}
else if(action.equals(Intent.ACTION_PACKAGE_REMOVED))
{
Log.d("", "[snowdeer] Package REMOVED : " + packageName);
}
}
}
#3.
그리고 실제 Activity에서 등록해서 사용하면 됩니다.
private PackageReceiver mPackageReceiver = new PackageReceiver();
registerReceiver( mPackageReceiver, new IntentFilter( Intent.ACTION_PACKAGE_ADDED ) );
또는
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_INSTALL);
intentFilter.addDataScheme("package");
registerReceiver(br, intentFilter);
또한, Activity 종료시에
unregisterReceiver( mPackageReceiver );
를 해주시는 것을 잊지 마세요. ^^;;
'개발 > 개발 자료' 카테고리의 다른 글
(Oracle) TRIGGER (0) | 2015.04.02 |
---|---|
(Android) ListView 스크롤바 안보이게 하기 (0) | 2015.03.28 |
(Android) 커스텀 타이틀바 (Custom TitleBar) 만들기 (0) | 2015.03.27 |
(JSP) Could not open the editor: An unexpected exception was thrown (0) | 2015.03.20 |
(Android) TextView Animation 처리 fade in/out (0) | 2015.03.13 |