안드로이드 - '출처를 알 수 없는 앱' 체크 방법

개발/안드로이드 2017. 11. 22. 08:00
반응형

안드로이드에서 "출처를 알 수 없는 앱"를 처리하는 코드에 대해 알아 보겠습니다.


'출처를 알 수 없는 앱'는 아래 코드로 알아 올 수 있습니다.  nResult 가 1이면  '출처를 알 수 없는 앱'이 활성화 되어 있는 상태 입니다.


1
int nResult = android.provider.Settings.System.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS);
cs


'출처를 알 수 없는 앱'은 위 코드 한 줄이면 끝난거죠. 그래도 전체 구현 소스를 살펴보도록 할께요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public void checkInstallNonMarketApps()
{
    try {
        int nResult = android.provider.Settings.System.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS);
 
        if (nResult == 1)
        {
            AlertDialog.Builder b = new AlertDialog.Builder(this, android.R.style.Theme_DeviceDefault_Light_Dialog);
            b.setTitle("알림");
            b.setMessage("스미싱 예방을 위해 환경설정의 '알 수 없는 출처(소스)'를 해제하시기 바랍니다.\n설정화면으로 이동하시겠습니까?");
            b.setCancelable(false);
            b.setPositiveButton("예"new DialogInterface.OnClickListener() {
 
                @Override
                public void onClick(DialogInterface dialog, int which) 
                {
                    if (Build.VERSION.SDK_INT >= 14
                    {
                        Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
                        startActivity(intent);
                    } 
                    else 
                    {
                        Intent intent = new Intent(Settings.ACTION_APPLICATION_SETTINGS);
                        startActivity(intent);
                    }
                }
 
            });
 
            b.setNegativeButton("아니오"new DialogInterface.OnClickListener() {
 
                @Override
                public void onClick(DialogInterface dialog, int which) 
                {
                }
 
            });
 
            b.show();
        }
    } 
    catch (SettingNotFoundException e) 
    {
        Log.w("error""checkInstallNonMarketApps");
    }
}
cs


여기서 눈여겨 볼 부분은 17~26번째 줄인데요. 설정화면으로 이동하는 코드입니다. Android 4.0 기준으로 이동하는 액션명이 변경되어 별도로 구분하여 이동해야 합니다.


안드로이드 8.0인 오레오 (Oreo) 에서 위 코드를 실행하면 무조건 '출처를 알 수 없는 소스'라고 나올껍니다. 

어떻게 바뀌었는지 살펴보고 바뀐부분에 대해서 다음 포스팅에서 다뤄보도록 할께요.



반응형
admin