2011-12-29 13 views
1

私は多くのアクティビティを持つプロジェクトに取り組んでいますが、クラス内に広いキャスト受信機をコーディングしようとすると、ファイルのマニフェストを許可しました。受取人で広いキャスト受信機をアクティビティとともに使用しています

<receiver android:name=".IncomingCallReciever" android:exported="true" android:enabled="true"> 
    <intent-filter android:priority="1">actionandroid:name="android.intent.action.NEW_OUTGOING_CALL" /> 
     <action android:name="android.intent.action.PHONE_STATE" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</receiver> 

答えて

0
public void onReceive(Context context, Intent intent) { 
mContext = context; 
mIntent = intent; 
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
int events = PhoneStateListener.LISTEN_CALL_STATE; 
tm.listen(phoneStateListener, events); 
} 
+0

私は上記のコード部分を追加した後、それが動作します –

2

投稿したXML抜粋に間違いはありません。しかし、タグandroid:nameに誤りがある可能性があります。これは、完全修飾クラス名でなければなりません(たとえば、com.example.project.ReportReceiver)。名前の最初の文字がピリオド(例えば、.ReportReceiver)である場合は、省略形として、それは<manifest>要素で指定されたパッケージ名に付加されています。そのショートカットを使用して、あなたのパッケージ名はpackage="com.example.project"のようなものでなければなりません。あなたのケースでは、あなたは.IncomingCallReciever前に全体のパッケージ名を確認する必要があります。


編集:ここでは特に問題の

チェック:

<intent-filter android:priority="1"> 
    actionandroid:name="android.intent.action.NEW_OUTGOING_CALL" /> 

>android:priority="1"後を削除する - あなたはそれを修正したら、それは、構文の問題だが、それが動作するはずです。

+0

パッケージ名は正しいですが、事はそれです。私は他の活動のセットを持っています。私のアプリケーションの1つのそのようなfuntionは、受信コールを読んでそれを拒否する(私もいくつかの情報を偽装)が何も起こっていないincomming calllsのcumsインチしかし、私は別のプロジェクトでは、 。私はちょうどそれがこのパッケージで働いていないisntを得る傾ける。 –

+0

この文脈でお手伝いしてください。 –

+0

AnswerHopeヘルプのEDITSをチェックしてください。まだそれがわからない場合は教えてください。 – AbhishekB

関連する問題