当在Android手机中检测/拨出电话我想发送一个短信给我的父母号码

问题描述:

我想开发一个使用广播接收器的Android应用程序,我的应用程序意味着,首先我想定义和存储一个父母号码我的第一个活动的数据库,当我们安装应用程序这个活动将启动和父号码保存到数据库,然后广播接收器希望活跃,并监听呼叫状态改变,如果有任何电话是通过我想要的手机发送消息给父母号码...... ?? ...我在这里如何使用广播接收器...是否有可能......并且我在下面提及我的代码......我希望你能帮助我这试图做到这一点很多方面,但我无法得到result.here首先我创建我的第一个活动,我访问我的数据库值,并试图激活广播接收器。当在Android手机中检测/拨出电话我想发送一个短信给我的父母号码

public class PARENT_CALLActivity extends Activity 
{ 

    String PARENT=null; 
    EditText edparent; 
    Button submit; 
    String parent_number; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


     edparent=(EditText)findViewById(R.id.editText1); 
     submit=(Button)findViewById(R.id.btnsubmit); 


     submit.setOnClickListener(new OnClickListener() 
     { 

      @Override 
      public void onClick(View v) 
      { 
       // TODO Auto-generated method stub 


       PARENT=edparent.getText().toString(); 

       MyDabasehandler db=new MyDabasehandler(getApplicationContext()); 

       if(db.getContact().equals(null)) 
       { 
        db.addContact(new Contacts(PARENT)); 

       } 
       else 
       { 
        db.editContact(); 
       } 
      Intent reciver=new Intent(getApplicationContext(),myBroadcast.class); 
      startActivity(reciver); 
      } 

     });  
    } 
} 

我的广播接收器....

 public class myBroadcast extends BroadcastReceiver 
{ 

    String out_number; 
    String myparent; 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     // TODO Auto-generated method stub 

    out_number=intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 

    MyDabasehandler db=new MyDabasehandler(context); 

    myparent=db.getContact().toString(); 

     //Toast.makeText(context, out_number+"number", Toast.LENGTH_LONG).show(); 


     SmsManager sm=SmsManager.getDefault(); 
      sm.sendTextMessage(myparent, "5554", "calling..to"+out_number, null, null);//5554 is my emulator number to check its in emulator 
     Toast.makeText(context, "send"+out_number, Toast.LENGTH_SHORT).show(); 


    } 


} 

和我的清单是...

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="sha.pcall" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="8" /> 
    <uses-permission android:name="android.permission.SEND_SMS"/> 
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".PARENT_CALLActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

     </activity> 
     <activity android:name=".MyDabasehandler" 
     android:label="@string/app_name">  
     </activity> 

     <activity android:name=".Contacts" 
     android:label="@string/app_name"> 
     </activity> 

     <receiver android:name=".myBroadcast" 
        android:label="@string/app_name"> 
      <intent-filter> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> 
       <action android:name="android.intent.action.PHONE_STATE" />     
      </intent-filter> 
     </receiver> 

    </application> 
/manifest> 

和我收到力关闭,当我按下提交按钮。

+0

你应该把异常堆栈跟踪以及了解FC – iTech 2013-02-09 08:14:58

+0

的原因@paresh Myani:谢谢你的评论我解决FC问题......你可以告诉我如何访问我的数据库值来广播接收器的活动...我不能读那个... plse通过它..我的代码是..公共光标getContact() \t { \t \t SQLiteDatabase db = this.getReadableDatabase();游标contacts = db.query(TABLE_CONTACTS,new String [] {KEY_PH_NO},KEY_PH_NO +“=?”,null,null,null,null); \t \t //返回联系人 \t \t返回联系人; \t \t \t} – ishaque 2013-02-11 06:04:27

您应该放置显示异常StackTrace的LogCat输出。

我可以在代码发现,它似乎是你缺少

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

+0

:感谢您的评论我解决这个问题,FC ...... u能告诉我如何可以访问我的数据库值广播接收机的活动......我不能阅读上有..我们的代码是..公共光标getContact() \t { \t \t SQLiteDatabase db = this.getReadableDatabase();游标contacts = db.query(TABLE_CONTACTS,new String [] {KEY_PH_NO},KEY_PH_NO +“=?”,null,null,null,null); \t \t //返回联系人 \t \t返回联系人; \t \t \t} – ishaque 2013-02-11 06:08:11