各位好,我最近在写一个例子,关于账户同步的,参照SDK中的SampleSyncAdapter这个实例。在实现同步功能的时候遇到了问题,我依照实例中的代码来写,我的主要代码如下:
public class SyncService extends Service { private static final Object mSyncLock = new Object(); private static SyncAdapter mSyncAdapter; @Override
public void onCreate() {
super.onCreate();
synchronized (mSyncLock) {
if (mSyncAdapter == null) {
mSyncAdapter = new SyncAdapter(getApplicationContext(), true);
}
}
} @Override
public IBinder onBind(Intent arg0) {
return mSyncAdapter.getSyncAdapterBinder();
}
}
public class SyncAdapter extends AbstractThreadedSyncAdapter { private AccountManager mAccMgr;
private Context mContext; public SyncAdapter(Context context, boolean autoInitialize) {
super(context, autoInitialize);
mContext = context;
mAccMgr = AccountManager.get(mContext);
} @Override
public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider,
SyncResult syncResult) {
// print out something
Toast.makeText(mContext, "开始同步", Toast.LENGTH_LONG).show();
}
mainfest中的service声明 <!-- sync service -->
<service
android:name=".syncadapter.SyncService"
android:exported="true" >
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter> <meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>
如上是我的主体代码,但是安装以后,账号界面的“开始同步”按钮是灰色的,不能点。请教下这是为什么呢?androidaccount同步
public class SyncService extends Service { private static final Object mSyncLock = new Object(); private static SyncAdapter mSyncAdapter; @Override
public void onCreate() {
super.onCreate();
synchronized (mSyncLock) {
if (mSyncAdapter == null) {
mSyncAdapter = new SyncAdapter(getApplicationContext(), true);
}
}
} @Override
public IBinder onBind(Intent arg0) {
return mSyncAdapter.getSyncAdapterBinder();
}
}
public class SyncAdapter extends AbstractThreadedSyncAdapter { private AccountManager mAccMgr;
private Context mContext; public SyncAdapter(Context context, boolean autoInitialize) {
super(context, autoInitialize);
mContext = context;
mAccMgr = AccountManager.get(mContext);
} @Override
public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider,
SyncResult syncResult) {
// print out something
Toast.makeText(mContext, "开始同步", Toast.LENGTH_LONG).show();
}
mainfest中的service声明 <!-- sync service -->
<service
android:name=".syncadapter.SyncService"
android:exported="true" >
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter> <meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>
如上是我的主体代码,但是安装以后,账号界面的“开始同步”按钮是灰色的,不能点。请教下这是为什么呢?androidaccount同步
解决方案 »
- 新手求教怎么在电脑上配置安卓虚拟机和安卓编译环境
- GridView中getConstantState获取不正确
- 小妹求助TabHost背景图片示例!
- 这个spinner程序哪里出错了?
- 初学者问个很菜的问题,谢谢
- Opencore解压库整合问题 ?
- android 为什么用managedQuery也会报这个问题呢:
- 怎么隐藏平板最下面那条系统工具栏?
- android中listview的item有checkbox
- 在setting里面自定义广播接收器收不到广播怎么解决?
- android怎么重写SimpleAdapter在getView方法中实现点击Item改变背景色?
- java.lang.IllegalArgumentException: Unknown URI content:
详细你可以了解一下google play账号,gamil等的同步功能,前提需要安装下GMS。