2016-07-23 9 views
2

Ich bin ein Neuling in Android. Ich möchte einen Texttext in einer Aktivität ändern, wenn ein Ladegerät eingesteckt oder ausgeschaltet ist. Dafür habe ich einen Empfänger in einem offenkundigen registriert mit Absichten android.intent.action.ACTION_POWER_CONNECTEDandroid.intent.action.ACTION_POWER_DISCONNECTEDWie wird angezeigt, ob das Ladegerät an einer Aktivität angeschlossen ist/ist?

Es folgt der Code für Empfänger:

public class PowerConnectionReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 

    if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) { 
     //Handle power connected 
     Log.e("Charger State","power connected"); 
     Toast.makeText(context, "Charger PluggedIn", Toast.LENGTH_SHORT).show(); 
    } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){ 
     //Handle power disconnected 
     Log.e("Charger State","power disconnected"); 
     Toast.makeText(context, "Charger PluggedOut", Toast.LENGTH_SHORT).show(); 
    } 

    } 
} 

Das funktioniert perfekt, aber ich will es zeigen, eine Tätigkeit, wenn das Ladegerät angeschlossen ist oder unplugged . Bitte helfen Sie mir, die Aufgabe zu erfüllen.

Dank ~

+0

haben Sie PowerConnectionReceiver in Manifest schreiben –

+0

y Es habe ich geschrieben und es funktioniert, wie ich die Toast-Nachricht sehen kann, wenn das Ladegerät ein- oder ausgeschaltet ist. Die einzige Sache ist, dass ich die Nachricht auf einer Aktivität say MainActivity anzeigen möchte. –

+0

Möchten Sie den verbundenen Status in einer Textansicht in einer Aktivität anzeigen? – SaravInfern

Antwort

0

Es gibt viele Möglichkeiten, um Daten von Broadcast-Receiver zum Aktivität

Der beste Weg, um einen Bus

compile 'org.greenrobot:eventbus:3.0.0' 

//Some Class 
public class MessageEvent { 
    public final String message; 

public MessageEvent(String message) { 
    this.message = message; 
    } 
} 

//In Activity 
@Override 
    public void onStart() { 
    super.onStart(); 
    EventBus.getDefault().register(this); 
} 

@Override 
public void onStop() { 
EventBus.getDefault().unregister(this); 
super.onStop(); 
} 

//From Broadcast Receiver 
//Add this in the Connected and Disconnected methods 
EventBus.getDefault().post(new MessageEvent("Hello everyone!")); 
+1

Weitere Informationen - http://greenrobot.org/eventbus/documentation/how-to-get-started/ –

+1

Sie müssen sowieso einen Rundfunkempfänger haben, also warum ist es "der beste Weg"? – TDG

+0

Dank einer Tonne @VeereshCharantimath funktioniert es perfekt, aber Sie haben es versäumt, eine Sache zu erwähnen, hier geht es darum, Abonnenten vorzubereiten, sonst hat Ihre Antwort mir geholfen ... –

0

den Code einfach zu verwenden ist, passieren Sie in der Sie schreiben Aktivität wie diese

public class MyActivity extends Activity{ 

TextView mTextView; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mTextView =(TextView) findViewById(R.id.text); 

} 

public class PowerConnectionReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 

    if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) { 
     //Handle power connected 
     Log.e("Charger State","power connected"); 
     mTextView.setText("Charger PluggedIn"); 
     Toast.makeText(context, "Charger PluggedIn", Toast.LENGTH_SHORT).show(); 
    } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){ 
     //Handle power disconnected 
     Log.e("Charger State","power disconnected"); 
     mTextView.setText("Charger PluggedOut"); 
     Toast.makeText(context, "Charger PluggedOut", Toast.LENGTH_SHORT).show(); 
    }else{ 
     mTextView.setText(""); 
    } 

    } 
}