Articles of java

Android模拟器:无法启动摄像头捕捉模拟器中的图片

我在Android Studio的AVDpipe理器中创build了一个armeabi API 21模拟器,将它设置为使用networking摄像头作为前置摄像头,并启动它。 问题是,它无法打开它,因为我得到这个错误: emulator: ERROR: camera_device_start_capturing: VIDIOC_STREAMON on camera '/dev/video0' has failed: Timer expired emulator: ERROR: _camera_client_query_start: Cannot start camera '/dev/video0' for NV21[640×480]: Inappropriate ioctl for device 我该如何解决这个问题? 摄像头使用其他软件正常工作。 操作系统是Ubuntu 14.04。

AudioTrack采样率不一致

使用AudioTrack进行播放时,我有时需要重新采样不符合AudioTrack支持的采样率的audio。 在这样做的时候,我需要确定AudioTrack在当前设备下在当前audioconfiguration下支持的最大采样率。 由于AudioTrack允许的采样率很差,我决定探听AudioTrack的源代码,发现这个惊人的线路: private static final int SAMPLE_RATE_HZ_MAX = 96000; 无论设备的实际播放能力如何, AudioTrack实例似乎都应用了96 KHz的硬限制。 更令人困惑的是在AudioFormat类中,我传递给AudioTrack的构造函数(API 21),其中包含以下行: if ((sampleRate <= 0) || (sampleRate > 192000)) { 在它的setSampleRate()方法中。 现在这是一个192 KHz的硬限制。 所以,将大于192 KHz的audio传入AudioFormat(或其构build器)会导致AudioFormat发生IllegalArgumentException AudioFormat ,并将configuration的192 KHz <x <96 KHz采样率的AudioFormat传入AudioTrack,同时也会抛出IllegalArgumentExceptionexception。 到目前为止,我发现最令人困惑的是AudioTrack中的getNativeOutputSampleRate()方法,它实际上会返回正确的输出采样率 (好吧,由于它直接从本地层运行,但没有多大意外,所以不一致)。 最后,方法setPlaybackRate()声明: 有效采样率范围从1 Hz到getNativeOutputSampleRate(int)返回值的两倍。 事实上,我确实尝试过,而且有效? 考虑下面的代码片段: int nativeRate = AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_MUSIC); android.util.Log.i("UI", "Native stream rate: " + nativeRate + " […]

从android执行shell命令

我试图从应用程序模拟器terminal执行这个命令(你可以在谷歌播放中find它)在这个应用程序中我写su然后按回车键,所以写: screenrecord –time-limit 10 /sdcard/MyVideo.mp4 再按一下进入 ,使用android kitkat的新function开始录制画面。 所以,我尝试执行相同的代码从Java使用这个: Process su = Runtime.getRuntime().exec("su"); Process execute = Runtime.getRuntime().exec("screenrecord –time-limit 10 /sdcard/MyVideo.mp4"); 但不要工作,因为该文件没有创build。 显然,我运行在安装了android kitkat的rooted设备上。 哪里有问题? 我怎么解决? 因为从terminal模拟器的工作和在Java中不?

如何使用Square的Retrofitnetworking库实现asynchronouscallback

作为一名开始使用Android的iOS开发人员,我遇到了Retrofit。 我明白如何实现同步请求,但遇到成功/失败callbackasynchronous请求时遇到困难。 具体来说,Callback语法对我来说还不清楚,在Retrofit 网站 ,介绍Retrofit的Square 博客文章或其他地方没有具体的例子。 有人可以发布一些示例代码呢? 我在Retrofit repo中提出了一个问题,要求他们用这个信息更新自述文件。

Android getIntent()。getExtras()返回null

我试图在两个活动之间传递一个string。 我已经在其他项目中使用相同的方法,但由于某种原因,当我调用intent.getStringExtra(String)时,我得到一个NullPointerException。 我也尝试创build一个捆绑的额外通过 Bundle b = getIntent().getExtras(); 但是也返回null。 下面是我目前正在尝试使用的代码。 活动A: Intent myIntent = null; String select = ""; if (selection.equals("Chandelle")) { myIntent = new Intent(Commercial.this, Chandelle.class); select = "Chandelle"; } else if (selection.equals("Eights on Pylons")) { myIntent = new Intent(Commercial.this, EightsOnPylons.class); select = "Eights on Pylons"; } // Start the activity if (myIntent != null) […]

使用Cursor获取字段值

我正在创build一个应用程序,我有问题与Cursor 。 当我尝试使用此函数获取值时,我有一个SQLiteDatabase返回了一个Cursor : public Cursor fetchOption(long rowId) throws SQLException { Cursor mCursor = mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, KEY_BODY}, KEY_ROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } 我不知道如何获得Cursor字段的值。 如果我这样做: String a = mOptionDb.fetchOption(0).getColumnName(0).toString(); String b = mOptionDb.fetchOption(0).getColumnName(1).toString(); String c = mOptionDb.fetchOption(0).getColumnName(2).toString(); […]

使用GridView / listViewdeviselib – CoordinatorLayout / CollapsingToolbarLayout

这可能是一个愚蠢的问题,但我不明白Design lib。 我正在按照这个参考来创build下面的布局。 当我滚动GridView时,蓝色区域应该作为视差。 但是,当我滚动网格查看AppBarLayout中没有任何反应。 但是,这与NestedScrollView和RecyclerView 以下是我的布局文件 – <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:background="#500403" android:layout_height="@dimen/detail_backdrop_height" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:fitsSystemWindows="true"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#122453" app:layout_scrollFlags="scroll|exitUntilCollapsed" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="48dp" app:expandedTitleMarginEnd="64dp"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:fitsSystemWindows="true" app:layout_collapseMode="parallax" /> <ImageView android:id="@+id/backdrop1" android:layout_width="50dp" android:layout_height="50dp" android:scaleType="fitCenter" android:fitsSystemWindows="true" android:layout_gravity="center" android:src="@drawable/bar_offline" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" […]

Android编码最佳实践/devise模式

在最近的一个问题中,我问我是否被导向到这个网站: http : //developer.android.com/design/index.html 令人惊叹的网站,但它并没有回答一个特定的问题:在应用代码devise中应用什么最佳实践/devise模式? 我做了MVC / MVP等的查找,虽然这产生了结果,但只是关于所述模式的实际实现,而不是其他可用的选项等。 我试着反编译和分析Android默认安装的各种应用程序,比如市场,但我无法真正在Google的代码中find结构。 有没有人有提示,如何设置Android应用程序的方式,他们是可维护,可扩展等我知道这些单词的广泛含义,他们纯粹是主观的程序员,但我不能用任何不同的方式expression 我已经遇到的一个最好的做法是每个活动一个视图,并在应用程序中有很多活动,以使后台工作正常,但除此之外,我不知道如何实际设置活动本身。

Android 7天前(一周)获取date

如何在Android中以这种格式从现在开始在一周之前获取date: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 例如:现在2010-09-19 HH:mm:ss ,一周之前2010-09-12 HH:mm:ss 谢谢

如何获得Android的SQLite数据库中的所有表名?

我已经尝试这个代码 Cursor c=db.rawQuery("SELECT name FROM sqlite_master WHERE type = 'table'",null); c.moveToFirst(); while(!c.isAfterLast()){ Toast.makeText(activityName.this, "Table Name=> "+c.getString(0), Toast.LENGTH_LONG).show(); } 但它会抛出错误"android.database.sqlite.SQLiteException: no such table: sqlite_master(code 1):,while compiling: SELECT name FROM sqlite_master WHERE type='table'" 如何获取所有表名? 帮我 提前致谢..