2013-02-09 64 views
1

我想開發一個使用廣播接收器的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

回答

0

您應該放置顯示異常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

相關問題