我想向 Android 添加一个未同步的新日历。我编写了一个应用程序,它使用 API 级别 14 的新 CalendarContract API 执行此操作。以下代码工作正常。我可以在 Android 的日历应用程序中看到新日历并向其添加事件。
问题是当我选择时 Android 日历应用程序崩溃:菜单 -> 日历显示 -> 日历同步
我的代码有问题还是Android日历中的错误?
请注意,我不想实际使用同步适配器。CalendarContract.Calendars 的文档说这不是必需的:“如果需要本地日历,应用程序可以通过作为同步适配器插入并使用 ACCOUNT_TYPE_LOCAL 的 ACCOUNT_TYPE 来实现。” 我知道“作为同步适配器插入”意味着将 (CalendarContract.CALLER_IS_SYNCADAPTER, "true") 附加到 URI。
public class CalendarMapper {
private static final String ACCOUNT_NAME = "private";
private static final String INT_NAME_PREFIX = "priv";
private static Uri buildCalUri() {
return CalendarContract.Calendars.CONTENT_URI
.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, ACCOUNT_NAME)
.appendQueryParameter(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL)
.build();
}
private static ContentValues buildContentValues(Calendar calendar) {
String dispName = calendar.getName(); //Calendar.getName() returns a String
String …Run Code Online (Sandbox Code Playgroud) 我的 ICS 应用程序中有一个带有搜索小部件的操作栏。我希望用户可以搜索应用程序附带的一些内容。因此,我想使用搜索小部件,显示一个结果列表,当用户输入新字符(与 Play 商店的功能相同)时,该列表会自动更新。我已经SearchView.OnQueryTextListener在我的活动中实施并实施了两种方法onQueryTextChange(String newText)和onQueryTextSubmit(String query). 在onQueryTextChange我调用我的服务中,它返回键入建议的值。但是我没有计划,如何显示建议列表。我阅读了developer.android.com上的文章,但据我所知,它主要用于旧的搜索实现(< Honeycomb)。在 Search Widget API 示例中,建议是应用程序,安装在系统上,由SearchManager. 我还没有找到涵盖此主题的教程或示例(搜索小部件中的自定义建议),有人知道这样的事情吗?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onQueryTextChange(String newText) {
Log.i(TAG, "Query = " + newText);
if(newText.length() > 0){
//my suggestion service, returning an arraylist!
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我读到,我需要从ContentProvider扩展SearchRecentSuggestionsProvider,但我不知道如何处理和创建此提供程序。我有一个searchable.xml指的是 …
search android android-4.0-ice-cream-sandwich android-actionbar
我目前正在开发一个跨平台应用程序,它应该在Google GLASS(Android 4.0.4),智能手机(Android 4.0.4或更新版本)和另一个可穿戴设备上运行.至少它将是ICS - 冰淇淋三明治版.
这个应用程序为我提供了由用户或系统(网络 - 事件)触发的事件驱动的不同视图.
为了用户的控制,我想实现语音识别,只需要识别数字或至少单个数字以及前后命令.重要的是它也可以脱机工作,它应该在应用程序运行时在后台工作,不应该覆盖用户界面.
相关工作:
SpeechRecognizer似乎只有使用jellybean的离线功能,(还没有找到在Android 4.0.4上使用它的方法).
在我看来,实现自定义IME和使用VoiceTyping是非常昂贵和肮脏的.(比如Utter!,顺便说一句.非常好的工作!)
第一次尝试使用pocketsphinx还没有成功.
我发现OnScrollChangedListener在Android 2.x上如果在第一次布局绘制之前添加它,就不会被解雇.例如,在onCreate/ onResume/ 等方法中添加滚动侦听器时onAttachedToWindow:
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View myView = findViewById(R.id.MyView);
System.out.println(myView.getViewTreeObserver().isAlive()); // true
myView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
@Override
public void onScrollChanged() {
// will never fire
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
那么,有谁知道这个问题的原因?
PS:似乎问题有时发生在API <= 15(Android 4.0.3)
android android-layout android-2.3-gingerbread android-view android-4.0-ice-cream-sandwich
我的Android应用程序用于URLConnection连接到Web服务.它已经在市场上销售了一年多,效果很好.但是,最近出现了Galaxy Nexus用户的问题:
从以下方式获取输入流(甚至还没有读取!)时URLConnection:
final BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()), 8192);
Run Code Online (Sandbox Code Playgroud)
A EOFException被扔了getInputStream().
首先我认为这可能是一个ICS问题,所以我在Nexus S上安装了早期版本,但在那里我无法重现这个问题.然后我就可以访问Galaxy Nexus,它与我收到的错误报告一样崩溃,这让我相信这可能不是单个手机表现得很奇怪的情况.
可以在此处看到崩溃的堆栈跟踪以及GitHub上的整个代码.这真的很奇怪,该应用程序在Android Market上安装了大约100k +,这个问题似乎只出现在Galaxy Nexus上.
任何提示或建议将不胜感激!
有什么方法可以在拍摄截图或将图片插入MediaStore时收听广播?
目的:反馈应用.
java android broadcastreceiver android-intent android-4.0-ice-cream-sandwich
我有一个我用Android 2.1编写的应用程序,它使用菜单按钮来显示一些选项.我想通过ICS中的操作栏溢出按钮提供此菜单,但是我无法让它显示出来.
如果我将目标API更改为15,则底部栏中的旧菜单按钮会在ICS中消失,但操作栏右上角的图标不会替换它,因此无法访问菜单.我已经尝试将showAsAction属性添加到菜单项,它什么也没做.我肯定在我的Eclipse构建选项中定位4.0.3.
我想要的只是在使用ICS Holo主题的同时可以访问该菜单,但仍然向后兼容旧设备.我该怎么做?
我试图用作Android客户端Websocket - weberknecht 用一个线程将每秒消息发送到Nodejs Websocket(js):Node WebSocket Server
它在android 2或2.3.3上运行正常,但是当我在android 4上运行时,我在websocket.connect()上遇到错误;
你知道为什么或我做错了吗?
我的代码是:
public class MainThread extends Thread {
private boolean is_running;
private URI url = null;
private de.roderick.weberknecht.WebSocket websocket = null;
public MainThread() {
this.is_running = false;
try {
url = new URI("ws://192.168.1.88:8088/");
websocket = new WebSocketConnection(url);
websocket.setEventHandler(new WebSocketEventHandler() {
public void onOpen(){
System.out.println("--open");
}
public void onMessage(WebSocketMessage message){
System.out.println("--received message: " + message.getText());
}
public void onClose(){
System.out.println("--close");
}
});
} catch (WebSocketException wse) {
wse.printStackTrace(); //To change …Run Code Online (Sandbox Code Playgroud) java android websocket node.js android-4.0-ice-cream-sandwich
WebView或更具体的PhoneGaps CordovaWebView可以使用客户端证书对服务器进行身份验证吗?
我知道本机浏览器可以使用客户端证书,但我正在尝试使用PhoneGap Android应用程序与需要客户端证书的服务器通信,并且无法查看如何.我尝试了各种我在谷歌上看过的方法,但它们不适用于Android 4.0或更高版本.任何建议都会受到极大关注.
android client-certificates webview android-4.0-ice-cream-sandwich cordova
我通过使用操纵其alpha级别来显示具有淡入淡出动画的布局AlphaAnimation.
目前的解决方案适用于我使用Gingerbread的两个设备和使用Froyo的设备.但是,它不适用于冰淇淋三明治?!
这是我的xml布局.
<LinearLayout
android:id="@+id/photoOptionBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:alpha="0"
android:background="@color/gpsBackground"
android:orientation="horizontal">
<ImageButton
android:id="@+id/displayShareBtn"
style="@android:style/Widget.Holo.Button.Borderless.Small"
android:background="@android:color/transparent"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:padding="20dp"
android:src="@drawable/share"
android:contentDescription="Share the picture"/>
<ImageButton
android:id="@+id/displayDiscardBtn"
style="@android:style/Widget.Holo.Button.Borderless.Small"
android:background="@android:color/transparent"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:padding="20dp"
android:src="@drawable/contentdiscard"
android:contentDescription="Discard Picture"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的onCreate方法在加载时将alpha设置为0,就像在xml中完成它不起作用...
AlphaAnimation alpha = new AlphaAnimation(0.0F, 0.0F);
alpha.setDuration(0); // Make animation instant
alpha.setFillAfter(true); // Tell it to persist after the animation ends
// And then on your layout
this._photoOptionsBar.startAnimation(alpha);
Run Code Online (Sandbox Code Playgroud)
然后,当我想展示它时,我打电话给以下.
public void showOptions() {
AlphaAnimation alpha = new AlphaAnimation(0.0F, 1.0F);
alpha.setDuration(PhotoDisplayFragment.FADE_DURATION); …Run Code Online (Sandbox Code Playgroud) android ×10
android-4.0-ice-cream-sandwich ×10
java ×3
android-view ×1
cordova ×1
node.js ×1
search ×1
websocket ×1
webview ×1