当在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>
和我收到力关闭,当我按下提交按钮。
您应该放置显示异常StackTrace的LogCat输出。
我可以在代码发现,它似乎是你缺少
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
:感谢您的评论我解决这个问题,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
你应该把异常堆栈跟踪以及了解FC – iTech 2013-02-09 08:14:58
的原因@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