実際に私のアプリでは、電話がかかってきたときにメッセージを送信したいと考えています...ここでは、親番号を要求するアプリのインストール時間と、最初のアクティビティからブロードキャストレシーバーアクティビティに送信するその番号...そこで受信され、また値を乾杯します..しかし、電話をかけると値がnullに変わります...電話をかけるときにその値にアクセスするのを手伝ってくれる人はいますか..それは可能ですか??どのように..私のコードを以下に示します.. .
ブロードキャストレシーバーに値を送信する最初のアクティビティで:
try
{
Toast.makeText(getApplicationContext(), "try", Toast.LENGTH_LONG).show();
Intent in = new Intent("my.action.string");
in.putExtra("parent", PARENT);//this string sending to broadcast receiver
sendBroadcast(in);
}
catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
私のブロードキャストレシーバーは次のとおりです。
public class myBroadcast extends BroadcastReceiver
{
String out_number;
String myparent;
@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub
myparent = intent.getExtras().getString("parent"); //this sting access the number first and then change to null at making phone call
final String my=myparent;
Toast.makeText(context, "broadcst"+myparent, Toast.LENGTH_LONG).show();
if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL"))
{
out_number=intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Toast.makeText(context, "broadcst"+my+" "+out_number, Toast.LENGTH_LONG).show();
SmsManager sm=SmsManager.getDefault();
sm.sendTextMessage(myparent, "5554", "calling..to"+myparent, null, null); //5554 is my emulator number to check its in emulator
Toast.makeText(context, "send"+out_number, Toast.LENGTH_SHORT).show();
}
}
}