0

実際に私のアプリでは、電話がかかってきたときにメッセージを送信したいと考えています...ここでは、親番号を要求するアプリのインストール時間と、最初のアクティビティからブロードキャストレシーバーアクティビティに送信するその番号...そこで受信され、また値を乾杯します..しかし、電話をかけると値が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();
        }
    }
}
4

1 に答える 1