Ich habe die Android-Anwendung erstellt, die Sätze Text "mtp" zu Textview sagt, wenn USB mit PC verbunden ist oder Text "Ladegerät" auf Textansicht setzt, wenn USB mit dem Ladegerät verbunden ist. Ich benutzte broadcastreceiver für USB-Kabelerkennung! Wenn ich die Anwendung auf dem Telefon laufen lasse und das USB-Kabel an den PC oder das Ladegerät anschließe passiert nichts, es wird nur keine gedruckt! Wo ist das Problem?Kann USB-Kabel auf meinem Handy nicht erkennen Anwendung
public class Receiver extends BroadcastReceiver
{
Intent intent;
@Override
public void onReceive(Context context, Intent intent)
{
intent = new Intent("check");
if(intent.getAction().equalsIgnoreCase("android.hardware.usb.action.USB_STATE"))
{
intent.putExtra("MTP", true);
context.sendBroadcast(intent);
}
else if (intent.getAction().equals("android.intent.action.ACTION_POWER_CONNECTED"))
{
intent.putExtra("isChargerConnected", true);
context.sendBroadcast(intent);
}
else
{
intent.putExtra("isCableConnected", false);
context.sendBroadcast(intent);
}
}
}
public class MainActivity extends AppCompatActivity
{
private TextView cable;
BroadcastReceiver broadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cable = (TextView) findViewById(R.id.cable);
broadcastReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
if (intent != null && intent.getAction().equals("check"))
{
Bundle bundle = intent.getExtras();
if (bundle != null && bundle.containsKey("MTP"))
{
boolean isUSBConnected = bundle.getBoolean("MTP");
if(isUSBConnected)
cable.setText("MTP");
}
if (bundle != null && bundle.containsKey("isChargerConnected"))
{
boolean isChargerConnected = bundle.getBoolean("isChargerConnected");
if(isChargerConnected)
cable.setText("Charger");
}
if (bundle != null && bundle.containsKey("isCableConnected"))
{
boolean isCableConnected = bundle.getBoolean("isCableConnected");
if(!isCableConnected)
cable.setText("None");
}
}
}
};
IntentFilter intentFilter = new IntentFilter("check");
registerReceiver(broadcastReceiver, intentFilter);
}
<receiver android:name=".Receiver">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_STATE"/>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
</intent-filter>
</receiver>
Ich habe Android: launchMode = "singleTask" zu MainActivity aber immer noch nur "None" angezeigt! – Pavle
Immer noch das gleiche Problem! – Pavle
Sie sollten auf jeden Fall einen Einblick hinzufügen, warum das funktioniert. _try this_ ist selten eine gut genug Antwort. – scharette