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

BroadcastReceiver를 상속해서 새로운 Package가 추가되었을 때, 웹에서 새로운 Package 설치 여부를 판단하고자 합니다.

0 추천

안녕하세요^^겨울비가 자주 오네용~질문에 답변해 주셔서 감사드립니다.

아래와 같이 BroadcastReceiver를 상속해서 새로운 Package가 추가되었을 때,

MainActivity에서 웹으로 파라미터를 보내서 웹에서 그 파라미터를 받았을 때,

패키지가 추가되었다는 것을 확인해서 웹에서 새로운 Package 설치 여부를 판단하고자 합니다.

어떻게 하면 되는지 방법을 잘 모르겠습니당..ㅠ제발 알려주세용~감사합니다.

제가 만든 앱에서 리시버로 새로운 패키지 설치 여부 체크를 하고 있습니다. 제가 만든 앱에서 새로운 패키지가 설치되면 리시버가 동작을 하는데 그 때 새로운 패키지가 설치되었다는 신호를 웹으로 받아서 웹에서도 새로운 패키지 설치 여부를 판단하고 싶은데, 방법을 잘 모르겠습니다.

 

AndroidManifest.xml
<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>

 

PackageReceiver.java

 

public class PackageReceiver extends BroadcastReceiver {

public static final String packageName = null;

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String packageName = intent.getData().getSchemeSpecificPart();
String action = intent.getAction();

if(action.equals(Intent.ACTION_PACKAGE_ADDED))
{
Log.e("test song", "Package ADDED : " + packageName);
}
else if(action.equals(Intent.ACTION_PACKAGE_REMOVED))
{
Log.e("test song", "Package REMOVED : " + packageName);
}
}

}

marimari (520 포인트) 님이 2015년 12월 21일 질문

1개의 답변

0 추천
일단 하이브리드나 웹앱으로 하시는거라면 앱이 꺼진 상태에서는 웹뷰로는 이벤트를 보내기가

거시기 한 상태가 되어버립니다. 앱이 실행했을때만 알고 싶다라면 저 기능이 제대로 동작할텐데

해당 리시버를 웹뷰가 있는 액티비티에서 동적으로 등록하셔야 합니다.

그러면 앱이 켜진 상태에서 홈키로 나와서 앱을 설치하거나 지워보면 이벤트가 들어올 것이고

받은 이벤트 상에서 WebView 에 loadURL 이나 sendJavascript 등으로 웹으로 이벤트가 전달 가능하겠죠.

만약에 앱이 실행중이 아니라도 알고 싶다면 웹뷰로 전달하는 방법으로는 곤란하겠죠.

메니페스트에 리시버를 등록해야되고 네이티브 HTTP 통신을 구현해서 백그라운드로 데이터를

전달해야됩니다.
라쎄린드 (25,460 포인트) 님이 2015년 12월 21일 답변
...