ブロードキャスト レシーバーを使用して Android アプリケーションを開発しようとしています。私のアプリケーションは、まず、最初のアクティビティで PARENT 番号を定義してデータベースに保存することを意味します。アプリをインストールすると、このアクティビティが起動し、親番号が保存されます。データベース、ブロードキャスト レシーバーがアクティブになり、通話状態が変化するのをリッスンしたい場合、その電話から電話がかかってきた場合、親番号にメッセージを送信したい...??...ここでブロードキャスト レシーバーを使用するにはどうすればよいですか...それは可能ですか...そして私は以下の私のコードに言及しています...これについて私を助けてくれることを願っています.私はこれを多くの方法でやろうとしていますが、結果を得ることができません.その中のアクティビティは、データベースの値にアクセスし、ブロードキャスト レシーバーをアクティブにしようとしています。
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>
送信ボタンを押すと強制的に閉じられます。