小编Pau*_*ine的帖子

Android - 如何从困难的睡眠中唤醒手机拍照?

我想在几个小时内定期从Android设备的相机拍照,以创建一个时间流逝的视频效果.

我设置了一个Alarm Manager,其AlarmManager.RTC_WAKEUP标志设置为每隔几分钟启动一次服务.

该服务包含部分唤醒锁,有些工作,然后通过启动活动的警报管理器调用广播接收器.

活动被创建(或恢复),打开它自己的唤醒锁,并设置相机预览表面.设置表面后,将调用SurfaceHolder侦听器的surfaceChanged()方法,最终拍摄照片.

如果设备处于唤醒状态,一切都会按预期完美运行.但是如果设备处于睡眠状态,一旦Activity的onResume()方法完成,Activity就会立即暂停.相机的预览表面永远不会完成初始化,也不会拍摄任何照片.

所以我的问题是:

  1. 有没有办法以编程方式唤醒手机?我甚至尝试使用:

    PowerManager powerManager =
                (PowerManager)this.getSystemService(Context.POWER_SERVICE);
    powerManager.userActivity(SystemClock.currentThreadTimeMillis(),false);
    
    Run Code Online (Sandbox Code Playgroud)

但是,如果手机处于睡眠状态,则不会唤醒手机.

  1. 有没有办法在不使用预览表面视图的情况下拍照?

  2. 有没有办法拍摄不依赖异步回调的图片?我可以将所有代码放在Activities onResume()方法中来拍照吗?

  3. 有没有办法让Activity的onResume()方法运行得足够长,以便摄像头的预览有足够的时间来初始化并调用所有的监听器?

我正确使用了唤醒锁,并且我在清单文件中正确设置了所有权限.我的活动没有保持足够长的时间以使异步侦听器正常工作.

为了解决这个问题,我试图让所有Android 1.6兼容,因为这是我唯一可以访问的测试设备.

这是令人沮丧的事情!

camera android android-wake-lock wakelock sleep-mode

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

什么是用于存储RPG游戏物品的优秀Java数据结构?

我正在用Java构建一个RPG地下城游戏,我一直在创建一个数据结构.

我有很多东西可以复制以填充地牢.例如,有一个面包Thing对象,一个剑Thing对象,一个连锁邮件Thing对象,以及怪物Thing(s)等.我想将它们存储在一个中央库中,然后能够使用某些东西检索一个对象查询.我想使用以下字段存储它们:

int minLevel
int maxLevel
double probability
int[] types
Run Code Online (Sandbox Code Playgroud)

因此,生锈的剑将具有minLevel1,a maxLevel3,probability罕见(3%),和[type.SWORD,type.WEAPON,type.ITEM,TYPE.EQUIP].一个更好的剑将有minLevel2,maxLevel10,稀有性(1%).

然后我想type.SWORD从图书馆中检索一个随机的并说我在3级.我应该根据他们的概率获得一把生锈的剑,而不是更好的剑.如果我type.SWORD从库请求级别10中检索到一个,我只会找回更好的剑.

我希望这是有道理的.

编辑 在初始化阶段,将创建所有基本对象.像可用的武器,盔甲,食物,药水,魔杖,所有基本可能的东西,在游戏中有一个独特的图形瓷砖.然后,当我想在某个地方放置一个物体时,我只是制作一个可用物品的副本,稍微调整它的属性,并将其插入世界.实际的项目都是根Thing类的子类,例如类Creature,Item,Equip(扩展Item),Weapon(扩展装备),Armor(扩展装备),Food(扩展Item)等等.但我想要标记它们在Library数据库中有所不同,我想使用额外的标签,例如type.RARE,type.ARTIFACT,type.CURSED,所以我想要除了类之外的额外标签.

游戏使用LIBGDX在Android和Applet上可用.我使用免费的Rltile套装,它有数以千计的好瓷砖.我将使用Pubnub或Google App Engine来提供多人游戏支持.

java data-structures

8
推荐指数
1
解决办法
5579
查看次数