Androidフォン/タブレットが日付と時刻でPCに接続されたときにログユーザーアクティビティを作成したい
USB接続イベントをキャッチする方法が見つからないことをよく検索しました
電話ユーザーの例外と手順をログに記録するために実装しましたlog4j
が、PC 接続に関して何もログに記録できません。
私を助けてください。ありがとう
Androidフォン/タブレットが日付と時刻でPCに接続されたときにログユーザーアクティビティを作成したい
USB接続イベントをキャッチする方法が見つからないことをよく検索しました
電話ユーザーの例外と手順をログに記録するために実装しましたlog4j
が、PC 接続に関して何もログに記録できません。
私を助けてください。ありがとう
次のレシーバー android.intent.action.UMS_CONNECTED を使用できます。
<receiver android:name="org.usbcheck.USBReceiver" >
<intent-filter>
<action android:name="android.intent.action.UMS_CONNECTED" />
<action android:name="android.intent.action.UMS_DISCONNECTED" />
</intent-filter>
</receiver>
ロギング用
public class USBReceiver extends BroadcastReceiver {
public Context _context;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(
"android.intent.action.UMS_CONNECTED")) {
Log.d("Connected", "Log Message");
}
else if (intent.getAction().equalsIgnoreCase(
"android.intent.action.UMS_DISCONNECTED")) {
Log.d("DisConnected", "Log Message");
}
}
}
android.intent.action.ums_connected をチェックする際の主な問題は、MTP プロトコルを使用するデバイス (Samsung Nexus Galaxy など) がこのブロードキャストを受信しないことです。
ソース : Android: USB の検出
または、デバイスが USB 充電モードの場合に充電を確認します
// How are we charging?
int chargePlug = battery.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BATTERY_PLUGGED_AC;
ソース: http://developer.android.com/training/monitoring-device-state/battery-monitoring.html