小编JDM*_*JDM的帖子

如何使用ADB通过TCP连接到Android?

我正在尝试在Motorola Droid上调试应用程序,但是我在通过USB连接到设备时遇到了一些困难.我的开发服务器是在Hyper-V中运行的Windows 7 64位VM ,因此无法通过客户端或主机上的USB直接连接.

我安装了几个不同的USB-over-TCP解决方案,但由于ADB监视器反复报告"devicemonitor无法开始监视" ,因此连接似乎存在问题.有没有办法使用网络直接从开发机器上的客户端连接到设备上的守护进程,而不是使用USB连接或可能的其他可行选项?

debugging networking android tcp adb

855
推荐指数
20
解决办法
102万
查看次数

TimePickerDialog和AM或PM

我有一个将is24Hour设置为false的TimePickerDialog,因为我想向最终用户呈现更熟悉的12小时格式.设置小时,分钟和AM PM指示器并返回时间时,如何确定最终用户是选择了AM还是PM?

这就是我对听众的看法:

private TimePickerDialog.OnTimeSetListener mTimeSetListener =
      new TimePickerDialog.OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, 
      int minute) {
     mHour = hourOfDay;
     mMinute = minute;
    // mIsAM = WHERE CAN I GET THIS VALUE
    }
};
Run Code Online (Sandbox Code Playgroud)

android timepicker

51
推荐指数
7
解决办法
5万
查看次数

识别上下文菜单的listitem的id

我有一个扩展活动的视图.ListView将显示许多列表项.当用户长时间点击时,我想向他们展示一个上下文菜单,允许他们选择编辑,删除等......然后识别被选为项目的列表项目以执行操作.

在onCreate我有:

listView.setAdapter(adapter);
listView.setOnItemClickListener(onListClick);
listView.setOnItemLongClickListener(onListLongClick);
registerForContextMenu(listView);
Run Code Online (Sandbox Code Playgroud)

我有一个方法onCreateContextMenu

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("Context Menu");
    menu.add(0, v.getId(), 0, "Edit");
    menu.add(0, v.getId(), 0, "Delete");

}
Run Code Online (Sandbox Code Playgroud)

以及onContextItemSelected

@Override
public boolean onContextItemSelected(MenuItem item) {

    if (item.getTitle() == "Edit") {
        // edit action
    } else if (item.getTitle() == "Delete") {
        // delete action
    } else {
        return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里可以获得正确的行/列表项目.

android contextmenu listitem

3
推荐指数
1
解决办法
3570
查看次数

AlarmManager 在模拟器中触发但不在物理设备上触发

我有一个调用 AlarmManager 的应用程序

Intent intent;
intent = new Intent(context, MyEventReceiver.class);  
PendingIntent appIntent = PendingIntent.getBroadcast(context, 0,
intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
appIntent);
Run Code Online (Sandbox Code Playgroud)

在 Manifyingt 中,我有强制性条目

    <receiver android:name=".MyEventReceiver"
   android:process=":remote" />
Run Code Online (Sandbox Code Playgroud)

MyEventReceiver 看起来像这样

public class MyEventReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        try
        {
            // DO SOME WORK
        }
        catch (Exception e)
        {
            Log.e("MyEventReceiver", e.getMessage().toString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当警报被激活时,即使我的应用程序没有运行,也应该启动 MyEventReceiver 并做一些事情。在模拟器中是这种情况,但在实际设备上却并非如此。

例如,我将在模拟器上启动 MyApplication,在 DDMS 中我可以看到 MyApplication 运行的过程。在 MyApplication 中,我添加了一个警报,然后在 DDMS 中终止了 MyApplication 的进程。当警报触发 MyEventReceiver …

android broadcastreceiver alarmmanager

3
推荐指数
1
解决办法
1661
查看次数

Intent.putExtras不一致

我对AlarmManager有一个奇怪的情况.我正在使用AlarmManager安排一个事件,并使用intent.putExtra传入一个字符串.弦是静音或振动的,当接收器发出电话时,应该转动振铃器或将手机设置为振动.log语句每次都正确输出预期值.

        Intent intent;
        if (eventType.equals("start")) {
            intent = new Intent(context, SReceiver.class);
        } else {
            intent = new Intent(context, EReceiver.class);
        }
        intent.setAction(eventType+Long.toString(newId));
        Log.v("EditQT",ringerModeType.toUpperCase());
        intent.putExtra("ringerModeType", ringerModeType.toUpperCase());
        PendingIntent appIntent = PendingIntent.getBroadcast(context, 0,
                intent, 0);

        AlarmManager alarmManager = (AlarmManager) getSystemService     (Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                appIntent);
Run Code Online (Sandbox Code Playgroud)

在警报执行时触发的接收器也有一个日志语句,我可以看到第一次该语句输出预期的字符串SILENT或VIBRATE但是对于每次后续执行,输出显示接收器端的原始值.警报执行然后我将putExtra的值更改为相反的字符串,并且接收器仍然显示先前的值事件,尽管来自上面代码的调用显示传入了新值.setAction的值每次都相同.

audioManager = (AudioManager) context.getSystemService(Activity.AUDIO_SERVICE);
Log.v("Start",intent.getExtras().get("ringerModeType").toString());
if (intent.getExtras().get("ringerModeType").equals("SILENTMODE")) {
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
} else {
audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
}
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

android alarmmanager android-intent

2
推荐指数
1
解决办法
2750
查看次数

禁用/启用通知指示

是否可以在Android设备上以编程方式禁用和启用LED指示灯?我并不是指在通知中打开和关闭它.我没有在api中看到任何会这样做的东西.我猜这是硬件特定的,如果可能的话.

android led

2
推荐指数
1
解决办法
5363
查看次数