はじめまして。
BroadcastReceiver で、 SHUTDOWN や WIFI_STATE_CHANGED は受信できるのですが、 DATE_CHANGED や
BOOT_COMPLETED が受け取れなくて悩んでいます。
Android Studio のテンプレートから作ってみましたが、何が問題で動かないのかわかりませんでした。
エミュレータ、実機(Galaxy S5) 共にうまく受信できません。
BOOT_COMPLETED は、logcat を見ると、他のアプリは受信できているような感じでしたが、私のパッケージでは受信できていないようでした。
何かお知恵を拝借できれば幸いです。
よろしくお願いいたします。
バージョン等は以下で行っています。
Android studio 1.2.2
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
minSdkVersion 15
targetSdkVersion 22
以下、ファイル内容です。
AndroidManifest.xml
--------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest ・・・ >
<application ・・・ >
<activity
:
</activity>
<receiver
android:name=".MyReceiver"
android:enabled="true"
>
<intent-filter>
<action android:name="android.intent.action.REBOOT" />
<action android:name="android.intent.action.DATE_CHANGED" />
<action android:name="android.intent.action.SHUTDOWN" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
</manifest>
--------------------------------------------
MyReceiver.java
--------------------------------------------
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive( Context context, Intent intent ){
SharedPreferences pref = context.getApplicationContext().getSharedPreferences( "test", Context.MODE_MULTI_PROCESS );
SharedPreferences.Editor edit = pref.edit();
edit.putString( "test", intent.getAction() + "\n" + pref.getString( "test", "" ) );
edit.commit();
Log.d( "test", intent.getAction() );
}
}
--------------------------------------------
MyActivity.java
--------------------------------------------
public class MainActivity extends ActionBarActivity{
@Override
protected void onCreate( Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
SharedPreferences pref = getApplicationContext().getSharedPreferences( "test", Context.MODE_MULTI_PROCESS );
((TextView)findViewById( R.id.hello )).setText( pref.getString( "test", "No data" ) );
}
:
}
--------------------------------------------