android 자동 시작 (사용)
5945 단어 전원 켜기 자동 켜기
1、먼저 안드로이드 매니페스트에서.xml 파일에서 방송과 성명 권한 정의
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
위의 MyReceiver는 제가 직접 쓴 클래스로 BroadcastReceiver를 계승했습니다. 코드는 다음과 같습니다.
public class MyReceiver extends BroadcastReceiver
{
public MyReceiver()
{
}
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
{
Intent i = new Intent(context, WelcomeActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
위의 i.addFlags(Intent.FLAG ACTIVITY NEW TASK);매우 중요합니다. 만약 부족하면 프로그램이 시작될 때 오류가 발생합니다
2. 다음은MainActivity 클래스의 코드입니다.
public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Toast.makeText(this, " , !", Toast.LENGTH_LONG).show();
Log.e("AutoRun"," , !");
}
}
3. 앱을 핸드폰에 설치하고 프로그램을 한 번 시작합니다(안드로이드4.0 이후에는 반드시 프로그램을 한 번 시작해야 켜진 방송을 받을 수 있다고 하는데 악성프로그램을 방지하기 위해서입니다)
4. 핸드폰을 다시 켜고 앱이 자동으로 시작되었는지 테스트한다.있다면 축하합니다.없으면 아래를 보세요.
만약 위의 모든 절차를 따라 조작한 후에 다시 시작하면 자동 시작 프로그램이 없으면 어떻게 합니까?어떻게 된 거죠?그러면 우선 핸드폰에 360과 같은 안전 소프트웨어가 설치되어 있는지 확인하세요. 만약에 설치되어 있다면 소프트웨어의 자동 시작 소프트웨어 관리에서 앱을 [허용]으로 설정하세요. (제 핸드폰에 이런 소프트웨어가 설치되어 있지 않지만 시스템 설정에 자동 시작 소프트웨어 관리 기능이 포함되어 있기 때문에 저는 여기서 제 앱을 [켜서 시작할 수 있음]으로 설정합니다.휴대전화를 다시 켜서 성공 여부를 테스트하다.만약 실패한다면 핸드폰에 앱을 설치한 후 첫 번째 위치가 sd카드인지 확인하세요. sd카드에 설치하면 핸드폰이 성공적으로 시작된 후(시작된 방송을 보낸 후) sd카드를 불러와서 앱에서 방송을 받지 못한다고 합니다.그렇다면 앱을 내부 저장소에 설치해 보세요.설정을 모르면 안드로이드 매니페스트에서 바로.xml 파일에 설치 경로를 설정합니다.android: install Location = "internal Only".예를 들면 다음과 같습니다.