2017-08-06 18 views
1

により送信された放送を受信することはできません:または、私がここにブロードキャストを送信してきた自分

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.administrator.broadcasttest"> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <receiver android:name=".MyBroadcastReceiver"> 
     <intent-filter> 
      <action android:name="com.example.administrator.broadcasttest.MY_BROADCAST"/> 
     </intent-filter> 
    </receiver> 

    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 

</manifest> 

、私のAndriodのバージョンは7.1.1で、私のAPIのバージョンが26
です私はそれを解決するために多くの方法を試しましたが、どれもうまくいきませんでした。
私は無駄に長い時間を探しています

これを達成する方法についていくつかのアイデアを教えてください。進んでください。

+0

あなたがMAとBRのための2つの異なるファイルを使用していますか? – IlToro

+1

@MikeM。どうもありがとう。私はそれを変更しました。 – Nim

+0

@Toroはい。私の放送受信機は別のJavaファイルで宣言されています。 – Nim

答えて

0

Javaファイルに複数のパブリッククラスを含めることはできません。ブロードキャストレシーバクラスを別のファイルに移動します。

+0

私は最初に2人以上の写真を撮ることができなかったので、写真に入れました。私は写真の代わりにコードで私の質問を修正しました。実際、彼らは異なるjavaファイルにあります。 – Nim

0

私は通常、受信者をXML ANDコードで登録します。

それを登録してください:

BroadcastReceiver whatever = new MyBroadcastReceiver(); 
registerReceiver(whatever, intentFilter); 
//Intentfilter is the intent you get in MyBroadcastReceiver 

はそれがお役に立てば幸いです。

EDIT:ITの登録を解除することを忘れないでください:

unregisterReceiver(whatever); 
+0

私はあなたのように動的にレシーバを登録できますが、経由で登録する場合は動作しません。しかし、あなたの助言に感謝します。 – Nim

関連する問題