안 드 로 이 드 자동 방송 효과 없 는 곡선 솔 루 션
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="where.com.whereareyou">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-sdk
android:minSdkVersion="7"
android:sharedUserId="android.uid.system" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.NoActionBar">
<activity
android:name="where.com.whereareyou.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="where.com.whereareyou.BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.media.AUDIO_BECOMING_NOISY" />
</intent-filter>
</receiver>
<service android:name=".MyService"/>
</application>
</manifest>
MyService
package where.com.whereareyou;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
/**
* Created by Administrator on 2015-10-4.
*/
public class MyService extends Service {
public final static String TAG = "MyService";
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG,"onStartCommand");
return START_NOT_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.e(TAG,"onDestroy");
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
BootBroadcastReceiver
package where.com.whereareyou;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
/**
* Created by Administrator on 2015-10-4.
*/
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String TAG = "BootBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "BootBroadcastReceiver onReceive");
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) || android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {
Log.e(TAG, "action=" + intent.getAction());
Intent ootStartIntent = new Intent(context, MyService.class);
context.startService(ootStartIntent);
}
}
}
코드 에서 보 듯 이 Intent.ACTIONBOOT_COMPLETED 는 boot 가 시 작 된 후에 시스템 이 라디오 를 보 낼 것 이 라 고 밝 혔 다.이론 적 으로 받 아들 일 수 있 고 대부분 핸드폰 도 가능 할 것 이 라 고 예상 했다.그러나 일부 핸드폰 rom 은 신기 하 게 바 뀌 었 다.굳이 안 드 로 이 드 미디어 를 추가 해 야 한다.AudioManager.ACTIONAUDIO_BECOMING_NOISY 가 켜 질 때 시스템 에 Intent.ACTION 을 실행 시 킬 수 있 습 니 다.BOOT_COMPLETED 방송의 발송 은 LOG 에 의 하면 OPPO 1107 의 경우 시스템 이 ACTION 을 먼저 발송 한 것 으로 나 타 났 다.AUDIO_BECOMING_NOISY 후 ACTION 을 보 냈 습 니 다.BOOT_COMPLETED,이것 만 을 기념 합 니 다.
이미
0 명 댓 글 달 고 강 타->
여기<-토론 참여
ITeye 추천
4.567917.-소프트웨어 인 재 는 언어 저 담 보 를 면제 하고 미국 에 가서 유급 으로 대학원 에 다 닙 니 다!-
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.