小编Dr *_*rge的帖子

检测铃声是否播放完毕

我想检测铃声何时播放完毕,但 AndroidRingtone类没有OnCompletionListener像该类MediaPlayer那样的 。具体来说,在实践中,我按以下方式播放铃声:

Ringtone r = RingtoneManager.getRingtone(
                getApplicationContext(), soundUri);
r.play();
Run Code Online (Sandbox Code Playgroud)

我想捕捉铃声播放器的完成事件(如果它甚至启动了这个事件......),就像人们可以在课堂上做的那样MediaPlayer。我知道该类Ringtone提供了该方法isPaying,但我不喜欢定期检查它直到返回 false 的解决方案...另一方面,通过该类MediaPlayer,可以检测玩家是否已完成播放某些内容,通过设置回调以更干净的方式OnCompletionListener

final MediaPlayer player = new MediaPlayer();
player.setDataSource(filepath);
player.setOnCompletionListener(new OnCompletionListener() {
     @Override
     public void onCompletion(MediaPlayer mp) {
        player.release();
     }
});
player.prepare();
player.start();
Run Code Online (Sandbox Code Playgroud)

那么,如何使用铃声管理器执行相同的操作呢?有可能吗?Ringtone.isPlaying或者定期检查, 直到返回 false 的解决方案是最好的解决方案吗???

java android ringtone

5
推荐指数
0
解决办法
618
查看次数

使用基于SMS的用户注册过程创建一个android应用(la Yo和WhatsApp)

我正在开发一个免费的消息传递应用程序,我希望基于用户的电话号码实施用户注册过程,并且为了验证该号码,我想在以下地区实施类似于Yo,WhatsApp或Telegram应用程序的SMS机制:用户会在SMS中收到唯一的确认码,以验证电话号码并激活用户的帐户。

我的研究表明,所有这些应用程序都使用第三方短信网关提供商,例如Twilio或Nexmo,但是对于免费的休闲应用程序(例如Yo)而言,这似乎非常昂贵。因此,我想知道像Yo这样的免费应用是否使用付费的SMS网关提供商向其用户发送确认代码,或者他们确实使用了其他任何东西。

我还检查了Telegram的Android应用程序源代码(请参阅此处),但是我无法弄清楚它们用于发送带有确认代码的SMS的方式和服务。是否有人熟悉Telegram的源代码,可以告诉我他们是如何做到的?

非常感激。

messaging sms android sms-gateway telegram

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

从PDF中提取不可选择的内容

我正在使用Apache PDFBox从PDF文件中提取页面,我找不到提取不可选内容(文本或图像)的方法.使用可从PDF文件中选择的内容,没有问题.

需要注意的是有问题的PDF文件不具有任何限制关于复制的内容,至少从我上的文件的"文档限制小结"看到:它们都具有"内容复制"和"内容复制为Accessbility"不允许的!在同一PDF文件中,有可选择的内容和不可选择的其他部分.所发生的是,提取的页面带有"洞",即它们只有PDF的可选部分.但是在MS Word上,如果我将PDF添加为对象,则会显示PDF页面的全部内容!所以我希望对PDFBox lib或任何其他Java lib做同样的事情!

这是我用来将PDF页面转换为图像的代码:

private void convertPdfToImage(File pdfFile, int pdfId) throws IOException {
   PDDocument document = PDDocument.loadNonSeq(pdfFile, null);
   List<PDPage> pdPages = document.getDocumentCatalog().getAllPages();
   for (PDPage pdPage : pdPages) { 
       BufferedImage bim = pdPage.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
       ImageIOUtil.writeImage(bim, TEMP_FILEPATH + pdfId + ".png", 300);
   }
   document.close();
}
Run Code Online (Sandbox Code Playgroud)

有没有办法从这个Apache PDFBox库(或任何其他类似的库)中提取PDF中的不可选内容?或者这根本不可能?如果确实不是,为什么呢?

非常感谢任何帮助!

编辑:我使用Adobe Reader作为PDF查看器和PDFBox v1.8.以下是PDF示例:https://dl.dropboxusercontent.com/u/2815529/test.pdf

java pdf pdfbox

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

Adb 命令取消/挂断来电

在 adb shell 上,我运行命令“adb -s shell am start -a android.intent.action.CALL -d tel:123456”来模拟对我的测试设备的假来电。它工作得很好。但我也想模拟来自 ADB shell 的未接来电,例如我会通过 telnet 命令使用“gsm cancel +123456”命令。我在任何地方都找不到如何做到这一点......亚行甚至可以这样做吗?如果是这样,如何?

PS:命令“adb -s shell input keyevent 6”不是答案!

android adb

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

在什么情况下我们可以获得NullPointerException("Name is null"); 错误?

此外,valueOf()Java的Enum类API 的方法,任何人都知道,如果任何其他Java API类抛出相同的异常,即NullPointerException("Name is null");

java nullpointerexception java-api

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