我正在创建一个应用程序,允许特定号码响铃,而电话是静音,我成功地能够在特定号码cal时更改电话状态。现在我需要访问联系人详细信息,保存它们并让应用程序访问该号码时调用,以便我的应用程序可以更改其声音状态。请帮助我了解资源的想法,做什么事情等等。我也给我的应用程序的代码.......
public class MainActivity extends BroadcastReceiver {
Context pcontext;
@Override
public void onReceive(Context context, Intent intent) {
TelephonyManager tmngr= (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
pcontext=context;
MyPhoneStateListener PhoneListener = new MyPhoneStateListener(pcontext);
tmngr.listen(PhoneListener,PhoneStateListener.LISTEN_CALL_STATE);
}
private class MyPhoneStateListener extends PhoneStateListener {
public MyPhoneStateListener(Context pcontext) {
// pcontext=context;
}
public void onCallStateChanged(int state,String incoming)
{
AudioManager am=(AudioManager)pcontext.getSystemService(Context.AUDIO_SERVICE);
String mode = "";
if (state == 1) {
String msg = "New Phone Call Event. Incomming Number : "+incoming;
int duration = Toast.LENGTH_SHORT;
// Context pcontext;
if(incoming.equals("9588840")||incoming.equals("+9195648840"))
{
Toast toast;
toast = Toast.makeText(pcontext, msg, duration);
toast.show();
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
if(am.getRingerMode()==(AudioManager.RINGER_MODE_NORMAL))
{ mode="NORMAL_MODE";}
Toast.makeText(pcontext,mode,Toast.LENGTH_SHORT).show();
}
else
{
if(am.getRingerMode()==(AudioManager.RINGER_MODE_NORMAL))
{ mode="SILENT_MODE";}
am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Toast.makeText(pcontext,mode,Toast.LENGTH_SHORT).show();
}
}
}
}
}
答案 0 :(得分:0)
答案 1 :(得分:0)
经过几天的研究我做了那个app.for它的开发我使用sqlite保存数据库为此我将参考 http://www.tutorialspoint.com/android/android_sqlite_database.htm 之后,我制作了一个动态广播接收器,当呼叫状态为我使用的动态广播接收机振铃时使用 http://androidexample.com/Incomming_Phone_Call_Broadcast_Receiver__-_Android_Example/index.php?view=article_discription&aid=61&aaid=86 在从联系人获取数据并使用游标将传入的数字与每个条目进行比较后,我能够制作应用程序。 感谢堆叠成员和团队帮助