小编Luk*_*uge的帖子

Android的MediaRecorder的getMaxAmplitude()函数实际上给了我什么?

Android MediaRecorder具有一项功能

.getMaxAmplitude();
正如API告诉我的那样,"返回自上次调用此方法以来采样的最大绝对振幅." 但我找不到这是什么幅度的?它是帕斯卡还是瓦特?

我在网上的几个页面上发现,您可以使用(如此处所示)计算与分贝密切相关的值.

double db = (20 * Math.log10(amplitude / REFERENCE)); 
Run Code Online (Sandbox Code Playgroud)

这会让我假设返回的值是某种线性标度(可能类似于milipascal ...)

REFERENCE = 0.1(我知道这应该是2*10 ^( - 5)Pascal((20 uPascal)),但是返回奇怪的值...... 0.1奇怪地效果更好.)

现在我使用了测量MaxAmplitude()

getMaxAmplitude()
并把它放入可变幅度.

这是方法:

public double getNoiseLevel() 
{
    //Log.d("SPLService", "getNoiseLevel() ");
    int x = mRecorder.getMaxAmplitude();
    double x2 = x;
    Log.d("SPLService", "x="+x);
    double db = (20 * Math.log10(x2 / REFERENCE));
    //Log.d("SPLService", "db="+db);
    if(db>0)
    {
        return db;
    }
    else
    {
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是在半秒内完成5次,这有点平均

for(int i=0; i<5; i++)
{
    try …
Run Code Online (Sandbox Code Playgroud)

android decibel mediarecorder

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

从Android上传图像到tumblr API

假设使用Tumblr API上传图像很容易.事实并非如此.(编辑现在,请参阅本条目末尾的编辑2)

我的应用程序应该上传图像tumblr.我更喜欢从服务中做到这一点,但是现在我使用的活动在完成上传后立即关闭.在OnCreate()用户通过身份验证:

consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);

// It uses this signature by default
// consumer.setMessageSigner(new HmacSha1MessageSigner());

provider = new CommonsHttpOAuthProvider(REQUEST_TOKEN_URL,ACCESS_TOKEN_URL,AUTH_URL);

String authUrl;
try 
{
authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
Log.d(TAG, "Auth url:" + authUrl);

startActivity(new Intent("android.intent.action.VIEW", Uri.parse(authUrl)));

} 
Run Code Online (Sandbox Code Playgroud)

这将打开一个浏览器活动,用户可以在其中添加用户名和密码,然后应用程序返回活动(这也是我必须使用活动的原因,我不知道如何从服务中执行此操作)

从浏览器返回数据被提取:

Uri uri = context.getIntent().getData();
if (uri != null && uri.toString().startsWith(CALLBACK_URL)) 
{  
    Log.d(TAG, "uri!=null");
    String verifier = uri.getQueryParameter("oauth_verifier");  
    Log.d(TAG, "verifier"+verifier);
    try 
    {
        provider.setOAuth10a(true);
        provider.retrieveAccessToken(consumer, verifier);
        Log.d(TAG, "try");
    } 
    catch (Exception …
Run Code Online (Sandbox Code Playgroud)

api encoding android tumblr

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

获取Chrome扩展程序中设备的本地IP

我正在开发一个chrome扩展,它应该发现然后与本地网络中的其他设备通信.要发现它们,需要找出自己的IP地址,找出网络的IP范围,以检查其他设备.我被困在如何找到本地机器的IP地址(我不是在谈论本地主机,我也不是在谈论暴露在互联网上的地址,而是在本地网络上的地址).基本上,我喜欢的是在background.js中的终端中获取ifconfig输出.

Chrome Apps API提供chrome.socket似乎可以执行此操作,但是,它不适用于扩展程序.通过API读取扩展我没有找到任何似乎使我能够找到本地IP的东西.

我错过了什么或者由于某种原因这是不可能的吗?是否有任何其他的方式来发现网络上的其他设备,这也将做得很好(因为它们是在同一个IP范围),但同时也有一些传言从2012年的十二月,有可能是用于扩展发现API似乎没有任何东西存在.

有人有什么想法吗?

networking google-chrome google-chrome-extension

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

Android Intent.ACTION_CALL,Uri

我正在尝试使用Intent.Action类.我知道如何使用ACTION_VIEW显示URL但我想Intent.ACTION_DIAL在启动应用程序时使用to call号码.文档说您需要将URI解析为字符串,然后将其添加到Intent我试过这个:

Uri call = Uri.parse("7777777777");             
Intent surf = new Intent(Intent.ACTION_DIAL, call); 
startActivity(surf);
Run Code Online (Sandbox Code Playgroud)

这不起作用我收到一条错误消息说:

不幸的是,Project已经停止了.我试图调试代码,它似乎指向意图行不确定我做错了,如果我这样做它工作并带来拨号器.

//Uri call = Uri.parse("7777777777");               
Intent surf = new Intent(Intent.ACTION_DIAL);   
startActivity(surf);
Run Code Online (Sandbox Code Playgroud)

android android-intent

11
推荐指数
2
解决办法
7万
查看次数

ClassNotFoundException dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)

Stackoverflow上出现了几次这个错误,我将在这个问题中引用其他问题.

我的项目是使用Android Maven插件的Android应用程序,包括库,但也包括一些本地库,因为它们不是通过maven提供的.我的IDE是Eclipse.我主要使用本教程来配置它.我对maven很新.

简而言之,我无法在手机上启动应用程序.启动它时,我会看到上面写的有关Activity的调用错误,这是我的启动Activity调用的SubscriptionView.整个错误跟踪如下:

07-17 15:47:42.170: E/AndroidRuntime(20071): FATAL EXCEPTION: main
07-17 15:47:42.170: E/AndroidRuntime(20071): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.dynamixsspbridge/com.example.dynamixsspbridge.SubscriptionView}: java.lang.ClassNotFoundException: com.example.dynamixsspbridge.SubscriptionView
07-17 15:47:42.170: E/AndroidRuntime(20071):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2034)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at android.app.ActivityThread.access$700(ActivityThread.java:140)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at android.os.Looper.loop(Looper.java:137)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at android.app.ActivityThread.main(ActivityThread.java:4921)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at java.lang.reflect.Method.invokeNative(Native Method)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at java.lang.reflect.Method.invoke(Method.java:511)
07-17 15:47:42.170: E/AndroidRuntime(20071):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) …
Run Code Online (Sandbox Code Playgroud)

android exception maven

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

从外部设备使用Chromium远程调试

可以运行Chrome以支持远程调试,方法是通过命令行启动它,例如chrome.exe --remote-debugging-port=9222 --user-data-dir=C:/foo.这通常用于在桌面设备上使用浏览器在Android或iO上进行调试,但我想调试在桌面PC上运行的chrome.从同一台机器上的"客户端浏览器"可以调用localhost:9222并查看服务器浏览器,调用localhost:9222/json将导致在"服务器浏览器"中打开选项卡的json表示.这很好用.

但是,当我尝试通过调用[本地IP]:9222或[本地IP]:9222/json(本地IP是服务器浏览器的IP)在同一(wifi)网络中使用其他设备时,我得到连接超时.是否可以这样使用远程调试?启动浏览器时是否需要其他任何开关?

编辑我发现有一些使用forward tcp来调试移动设备,但似乎没有这样的转换为chrome.

编辑2这似乎与这里这里的问题有点重复但是,到目前为止,我还没有得到那里提出的解决方案.

所以,显然这归结为将端口转发到localhost:9222.但是,至少在Windows机器上我没有运气SSH隧道.还有其他方法可以在机器上转发吗?

debugging google-chrome remote-debugging remote-access chromium

8
推荐指数
2
解决办法
8899
查看次数

从非Android设备查找和Android NSD服务

自Android 4.1网络服务发现(NSD)可用.但是,如何找到从计算机或其他不运行android的设备中暴露NSD-Service的Android设备.如示例中所示构建一个Android应用程序会发现其他设备很好,但是,并不总是将Android作为平台.

我在我的电脑上运行UPnP发现,手机没有出现.

你可以在github上找到我在这里实现的NSD-Service .

Discovery应用程序很简单,来自android示例.

UPnP示例使用Cling,并且从他们的教程中找到我的路由器和Windows媒体播放器,所以我认为它有效.

可能是问题是基于服务发现协议的不匹配,我继续对NSD,UPnP,Bonjour,Zeroconf和所有其他可能性之间的差异感到困惑......

java android upnp service-discovery

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