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
Du musst angemeldet sein, um einen Kommentar abzugeben.
erstellen Sie eine neue Aktivität aufgerufen NewActivity. und tun Sie dies:
Nun eine neue Klasse erstellen, erhalten Sie die extras:
und innen res/layout/main.xml