我正在尝试从库项目注册到GCM,GCMIntentService是在库项目中定义的.
这是我的注册码(在图书馆项目内):
public static void init(Context context, String id){
GCMRegistrar.checkDevice(context);
GCMRegistrar.checkManifest(context);
GCMRegistrar.register(context, id);
}
Run Code Online (Sandbox Code Playgroud)
但是没有调用GCMIntentService的回调,只有当我将库项目作为独立的android项目运行时才调用它们.
这是我的测试项目清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.pushtest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="com.example.pushtest.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.example.pushtest.permission.C2D_MESSAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name=".PushTestApp" >
<activity
android:name="com.example.pushtest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> …Run Code Online (Sandbox Code Playgroud) android push-notification android-service google-cloud-messaging
我试图在标题栏中显示带有长文本的通知.
PendingIntent contentIntent = PendingIntent.getActivity(context,
NOTIFICATION_ID, notificationIntent,
PendingIntent.FLAG_ONE_SHOT);
NotificationManager nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(
context);
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.icon_push).setTicker(alert)
.setContentTitle(title).setContentText(alert)
.setWhen(System.currentTimeMillis()).setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
builder.setStyle(new NotificationCompat.BigTextStyle()
.bigText(title));
}
Notification n = builder.build();
nm.notify(id, n);
Run Code Online (Sandbox Code Playgroud)
但是 builder.setStyle(new NotificationCompat.BigTextStyle()
.bigText(title));
在setStyle似乎什么都不做,我在Android 4.1测试它
我正在使用a LocationClient来检索当前用户位置,我正在尝试LocationRequest使用距离值和更新间隔创建一个.
我的代码目前按更新间隔请求位置更新:
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(updateInterval);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
if (mLocationClient.isConnected()) {
mLocationClient.requestLocationUpdates(mLocationRequest, this);
}
Run Code Online (Sandbox Code Playgroud)
在LocationManager这里有一种按距离请求位置更新的方法
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
如何为正在使用我的应用程序的当前用户获取唯一ID?
我不想检索device UDID(为我的用户隐私问题).
我曾经看过,在最新的API版本(4.0+)中有这样的方法为当前的android用户生成一个唯一的id,但我现在找不到它.
我试图扩展相对布局,并添加一个简单的方法来设置onTouchListener.
问题是在我设置监听器之后,唯一被调用的事件是 MotionEvent.ACTION_DOWN
其他事件没有被调用.
这是我的自定义相对布局的代码:
public class MyRelativeLayout extends RelativeLayout {
public MyRelativeLayout(Context context) {
super(context);
}
public MyRelativeLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyRelativeLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void setOnTouchEvent() {
this.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("myTextView", "onTouch event called");
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//only this event is being called
return false;
default:
//other events are not being called
return false;
} …Run Code Online (Sandbox Code Playgroud) 我有一个列表,我想从底部实际更改要填充的项目,而不是从xml.
该属性是否有相应的方法android:stackFromBottom?
我想从代码中多次设置它为true或false.
我正在尝试更改默认EditText样式,我已通过TextView以下方式使用样式完成:
<style name="MyTextViewStyle" parent="android:Widget.TextView">
<item name="android:textColor">@color/pink</item>
<item name="android:textSize">@dimen/textSize</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将其用作 android:textViewStyle 样式
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<item name="android:textViewStyle">@style/MyTextViewStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我怎样才能用一个实现同样的目标EditText?
我想在拔掉usb时停止正在运行的服务.
在我的活动中,onCreate我检查它的意图action
if (getIntent().getAction().equals(UsbManager.ACTION_USB_DEVICE_DETACHED)) {
Log.d(TAG, "************** USB unplugged stopping service **********");
Toast.makeText(getBaseContext(), "usb was disconneced", Toast.LENGTH_LONG).show();
stopService(new Intent(this, myService.class));
} else {
init();
}
Run Code Online (Sandbox Code Playgroud)
在我的内心,我manifest有另一个intent filter
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
而且这intent filter也被称为.
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但这个分离并未被召唤.
我有TextView,我希望文本的每个单词具有不同的大小和字体.
我知道您可以将文本的一部分设置为粗体或使用和标签加下划线.
但是,如果我需要文本的一部分大小为18sp并且具有自定义字体(来自资源)而另一部分具有不同的自定义字体并且大小为14sp.
我可以将TextView拆分为单独的TextViews,但我想避免这种情况.
我有一个编辑文本和编辑文本下面的按钮.
这是片段布局.
我希望键盘按下按钮,以便它始终在屏幕上可见.
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="110dp"
android:ems="10" >
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="91dp"
android:text="Button" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 目前我正在尝试按日期排序我的列表:
Collections.sort(unsortedDates, new Comparator<Item>() {
public int compare(Item m1, Item m2) {
return m1.getDate().compareTo(m2.getDate());
}
});
Run Code Online (Sandbox Code Playgroud)
但是我希望对列表进行排序,以便锚定日期为今天,第一个项目应该是当前日期的最近日期.
日期格式是MM/dd.
getDate()返回一个Date对象.