2016-05-17 5 views
0

私もthisを試してみましたが、それは...はアンドロイドで着信を検出する際に自分のコードで何が悪いのでしょうか?

のAndroidManifest.xmlに働いていなかった ..私は多くのリソースを探し、何も私を助けていない:

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

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <receiver android:name=".IncomingCall"> 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE" /> 
     </intent-filter> 
    </receiver> 
</application> 

をIncomingCall.java

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.TelephonyManager; 
import android.util.Log; 
import android.widget.Toast; 

public class IncomingCall extends BroadcastReceiver 
{ 

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
     String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); 
     Toast.makeText(context," its name :"+incomingNumber, Toast.LENGTH_LONG).show(); 
    } else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_IDLE) || intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) { 
     Toast.makeText(context," something", Toast.LENGTH_LONG).show(); 
    } 
} 
} 
+0

あなたはありますか?他の人のような –

+0

はREAD_PHONE_STATEパーミッションを追加し、マシュマロに開発した場合、実行時 – Opiatefuchs

+0

@ShashankUdupa時にすべての権限を要求する必要があり、言った:はい、 –

答えて

0

あなたはこのコードを動作させるために、次の権限を追加する必要があります:マニフェストで:<名前=「android.permission.READ_PHONE_STATE」/使用許可アンドロイド>許可を

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
+0

はい、私はそれをしなかったが、それでもそれは... –

+0

私を助けていなかった次に、あなたは、Androidで導入されたチェックの実行時のアクセス権を確認する必要があります6.0。 Googleの公式ドキュメント:[実行時の権限チェック:](https://developer.android.com/training/permissions/requesting.html) – activesince93

関連する問題