wie zum senden von Daten von broadcast-Empfänger-Aktivität in android

Hier ist, was ich tun will. Habe ich einen broadcastreceiver-Klasse, die erkennt eingehende Anrufe durch callrecieve Aktivität. Nun, sobald ein Anruf kommt, ich will zu finden, die aktuelle Uhrzeit und das display durch eine andere Aktivität. Ich habe verwendet, Absichten für diese. Aber noch bin ich nicht immer die Zeit Wert, als erforderlich, die angezeigt wird, wenn ich einen Anruf erhalten. Ich habe alle codes die ich verwende. jede Hilfe wäre toll,

Hier ist der broadcast-Empfänger-Aktivität, die prüft den Zustand des Telefons für eingehende Anrufe und ist verantwortlich für die Ausstrahlung der Absicht

package com.mohit;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;


public class callreceive extends Activity {
public class receive extends BroadcastReceiver {


    long start_time,end_time,dif_sec;
    int flag=0;

  @Override
  public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();
    if (extras != null) {
      String state = extras.getString(TelephonyManager.EXTRA_STATE);

      Log.w("DEBUG", state);
      if ((state.equals(TelephonyManager.EXTRA_STATE_IDLE))&&flag==0) 
      {
        flag=1;
        start_time=System.currentTimeMillis();
        Intent intent1 = new Intent();//(callreceive.this,TestActivity.class);
        intent1.setAction(Intent.ACTION_SEND);
        intent1.putExtra("start_time",start_time);
        startActivity(intent1);

        }
    }
  }
}
}    

Nun will ich senden, der Wert der start_time, um eine Aktivität so bald als wenn der loop ausgeführt wird. Hier ist der code für die empfangende Aktivität-Activity Testen.

package com.mohit;

import com.mohit.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class TestActivity extends Activity {

    TextView output1,output2;
    long start_time,end_time;
    int flag=0;
    long dif_sec=0;

      @Override
        public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
             output1=(TextView)findViewById(R.id.textView1);


             Intent extras = getIntent();
              if (extras!=null)
              {

                  if (flag==0)
                  {
                      flag=1;
                 dif_sec=extras.getLongExtra("start_time",0);
                  }
              }
              output1.setText(String.valueOf(dif_sec));

              }

} 

Hier ist die android-manifest-Datei

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mohit"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity android:name="TestActivity" >
        <intent-filter>
                <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>
    </activity>


     <activity android:name="callreceive" >
    <receiver android:name="receive" >
        <intent-filter>
    <action android:name="android.intent.action.SEND" />
    <action android:name="android.intent.action.PHONE_STATE"></action>
    <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
    </activity>

 </application>

</manifest>

Ich bin nicht in der Lage zu drucken, wird der Wert der start_time durch die test-Tätigkeit. Habe ich etwas vergessen oder ist etwas falsch?? Plz Help
Danke

InformationsquelleAutor aps109 | 2012-08-13
Schreibe einen Kommentar