Android開発で質問です。
NotificationListenerServiceを継承したクラスからブロードキャストを送信して別クラスのレシーバーで受け取ろうとしているのですが、なぜか受信ができませんでした。
レシーバー登録をソース上で行っても結果は同じでした。
何週間も悩みましたが、何が原因かよくわかりません。
すみませんが、よろしくお願いします。
Java
1public class MainActivity extends ActionBarActivity { 2 3 Context context; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 context = getApplicationContext(); 10 } 11}
java
1public class NotificationService extends NotificationListenerService { 2 3 private final String NOTIFICATION_TEXT = "NOTIFICATION_TEXT"; //ブロードキャスト用 4 5 @Override 6 public void onCreate() { 7 super.onCreate(); 8 } 9 10 @Override 11 public void onDestroy() { 12 super.onDestroy(); 13 } 14 15 /** 16 * 通知発生時のリスナー(システム側で許可設定が必要) 17 */ 18 @Override 19 public void onNotificationPosted(StatusBarNotification sbn) { 20 Log.v("NotificationService", "onNotificationPosted"); 21 startBroadCast(text); 22 } 23 24 /** 25 * ブロードキャストの送信 26 */ 27 private void startBroadCast(String str){ 28 Intent intent = new Intent(NOTIFICATION_SERVICE); 29 intent.putExtra(NOTIFICATION_TEXT, str); 30 sendBroadcast(intent); 31 } 32}
Java
1public class TestReceiver extends BroadcastReceiver { 2 3 private final String NOTIFICATION_TEXT = "NOTIFICATION_TEXT"; //ブロードキャスト用 4 5 @Override 6 public void onReceive(Context context, Intent intent) { 7 String noticeText = intent.getStringExtra(NOTIFICATION_TEXT); 8 Log.v("[TestReceiver]", noticeText); 9 } 10} 11
xml
1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.hoge.notificationservicetest" > 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:theme="@style/AppTheme" > 10 <activity 11 android:name=".activity.MainActivity" 12 android:label="@string/app_name" > 13 <intent-filter> 14 <action android:name="android.intent.action.MAIN" /> 15 <category android:name="android.intent.category.LAUNCHER" /> 16 </intent-filter> 17 </activity> 18 <service android:name=".service.NotificationService" 19 android:label="@string/app_name" 20 android:enabled="true" 21 android:exported="true" 22 android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"> 23 <intent-filter> 24 <action android:name="android.service.notification.NotificationListenerService" /> 25 </intent-filter> 26 </service> 27 <receiver 28 android:name=".TestReceiver"> 29 <intent-filter> 30 <action android:name="NOTIFICATION_SERVICE" /> 31 </intent-filter> 32 </receiver> 33 </application> 34</manifest>
###前提・実現したいこと
ここに質問したいことを詳細に書いてください
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
ここにご自身が実行したソースコードを書いてください
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー