我尝试开发一个简单的Broadcastreceiver。
这是我的代码:
public class MyClass extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle extras = intent.getExtras();
if (extras != null) {
String state = extras.getString(TelephonyManager.EXTRA_STATE);
Log.w("DEBUG", state);
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
String phoneNumber = extras
.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast.makeText(context, phoneNumber, Toast.LENGTH_LONG).show();
Log.w("DEBUG", phoneNumber);
}
}
}
}
的Manifest.xml:
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name=".MyClass">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"></action>
</intent-filter>
</receiver>
</application>
我想要做的就是'吐司'我正在打电话的号码(或者当我被召唤时)。
这不是那样的吗?它是我目前使用的唯一代码。只有一个Broadcastreceiver在后台运行,并通过电话事件解雇。
谢谢, prexx
答案 0 :(得分:1)
您需要将此权限添加到清单:
<uses-permission android:name="android.permission.READ_PHONE_STATE">