更新:我修复了下面代码中的问题,所以这是一个很好的基本工作示例,说明如何使用GCM
所以,我正在尝试将Android GCM应用到我的应用中.以下是我添加到清单中的相关部分:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="20" />
<permission
android:name=".permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name=".permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
Run Code Online (Sandbox Code Playgroud)
...
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.badbob.app.gmctestapp" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" />
Run Code Online (Sandbox Code Playgroud)
我已将以下代码添加到我的主要活动的onCreate中:
GCMRegistrar.checkDevice( this );
GCMRegistrar.checkManifest( this );
final String regId = GCMRegistrar.getRegistrationId( this );
if( regId.equals( "" ) ) {
GCMRegistrar.register( this, GCM_SENDER_ID );
}
else {
Log.v( LOG_TAG, "Already registered" );
}
Run Code Online (Sandbox Code Playgroud)
我也GCMIntenetService像这样创建了这个类: …
我正在尝试实现一个EditText,它只将输入限制为alpha字符[A-Za-z].
我从这篇文章开始使用InputFilter方法.当我输入"a%"时,文本消失,如果我按退格键,则文本为"a".我已经尝试了过滤器功能的其他变体,比如使用正则表达式只匹配[A-Za-z],有时会看到像重复字符这样的疯狂行为,我会输入"a"然后"b"并获得"aab"然后键入"c"并获取"aabaabc"然后点击退格并获得"aabaabcaabaabc"!
这是我到目前为止使用的代码,我尝试过不同的方法.
EditText input = (EditText)findViewById( R.id.inputText );
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter( CharSequence source, int start, int end, Spanned dest, int dstart, int dend ) {
//String data = source.toString();
//String ret = null;
/*
boolean isValid = data.matches( "[A-Za-z]" );
if( isValid ) {
ret = null;
}
else {
ret = data.replaceAll( "[@#$%^&*]", "" );
}
*/
/*
dest = new SpannableStringBuilder();
ret = data.replaceAll( "[@#$%^&*]", "" );
return …Run Code Online (Sandbox Code Playgroud) 所以我正在尝试建立一个机架式云服务器来托管具有单个IP的多个站点(而不是服务器).我在Ubuntu 12.04 LTS服务器上安装了Virtualmin/Webmin.我创建了目录/ var/www/sites/testsite.然后我使用以下设置在Webmin-> Servers-> Apache Webserver下创建了一个虚拟主机:
Address: Any
Port: 80
Document Root: /var/www/sites/testsite
Server Name: testsite.com
Run Code Online (Sandbox Code Playgroud)
然后,为了测试它,我在本地机器上编辑了hosts文件并添加了
[my.server.ip.address] testsite.com
Run Code Online (Sandbox Code Playgroud)
然后在我的浏览器中访问testsite.com并且问题是它正在加载默认站点(在/ var/www)而不是我刚刚创建的虚拟站点(我通过在/ var/www和/中添加不同的index.html文件来验证这一点无功/网络/网站/测试网站).
以下是在/etc/apache2/sites-available/webmin.1372454178.conf中创建的webmin指令
DocumentRoot /var/www/sites/testsite
<Directory "/var/www/sites/testsite">
allow from all
Options +Indexes
</Directory>
ServerName testsite.com
ServerAlias www.testsite.com
Run Code Online (Sandbox Code Playgroud)