編輯:關於Android編程
在運行Android 4.0版和更低的設備,用戶通過系統的活動,允許用戶選擇一個小部件添加應用程序部件。這含蓄地做了權限檢查,也就是說,通過將應用程序窗口小部件,用戶被隱性授予權限,以您的應用程序小部件添加到主機。這裡是示出該方法中,從原來的啟動器所采取的示例。在這個片段中,一個事件處理程序調用startActivityForResult()在響應用戶操作的請求代碼REQUEST_PICK_APPWIDGET:
private static final int REQUEST_CREATE_APPWIDGET = 5;
private static final int REQUEST_PICK_APPWIDGET = 9;
...
public void onClick(DialogInterface dialog, int which) {
switch (which) {
...
case AddAdapter.ITEM_APPWIDGET: {
...
int appWidgetId =
Launcher.this.mAppWidgetHost.allocateAppWidgetId();
Intent pickIntent =
new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
pickIntent.putExtra
(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
...
startActivityForResult(pickIntent, REQUEST_PICK_APPWIDGET);
break;
}
...
}
當系統活動結束時,它返回與用戶選擇的應用小工具,你的活動的結果。在下面的例子中,該活動通過調用廣告AppWidget()添加應用程序部件響應:public final class Launcher extends Activity
implements View.OnClickListener, OnLongClickListener {
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mWaitingForResult = false;
if (resultCode == RESULT_OK && mAddItemCellInfo != null) {
switch (requestCode) {
...
case REQUEST_PICK_APPWIDGET:
addAppWidget(data);
break;
case REQUEST_CREATE_APPWIDGET:
completeAddAppWidget(data, mAddItemCellInfo, !mDesktopLocked);
break;
}
}
...
}
}
該方法添加AppWidget()檢查是否應用程序部件需要它添加之前配置:void addAppWidget(Intent data) {
int appWidgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
String customWidget = data.getStringExtra(EXTRA_CUSTOM_WIDGET);
AppWidgetProviderInfo appWidget =
mAppWidgetManager.getAppWidgetInfo(appWidgetId);
if (appWidget.configure != null) {
// Launch over to configure widget, if needed.
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
intent.setComponent(appWidget.configure);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
startActivityForResult(intent, REQUEST_CREATE_APPWIDGET);
} else {
// Otherwise, finish adding the widget.
}
}
有關配置的詳細討論,請參閱創建應用程序窗口小部件配置活動。但是,這僅僅是第一步。在運行時,用戶必須明確授予權限,您的應用程序,使其能夠應用小部件添加到主機。要測試你的應用程序是否有權限新增的小工具,可以使用bindAppWidgetIdIfAllowed()方法。如果bindAppWidgetIdIfAllowed()返回false,您的應用程序必須顯示一個對話框,提示用戶授予權限(“允許”或“總是允許”,以涵蓋所有未來的應用小工具添加)。這段代碼提供了如何顯示對話框的例子:
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_BIND); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_PROVIDER, info.componentName); // This is the options bundle discussed above intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_OPTIONS, options); startActivityForResult(intent, REQUEST_BIND_APPWIDGET);主機也必須檢查用戶是否補充說,需要配置一個應用程序部件。有關此主題的更多討論,請參閱創建應用程序窗口小部件配置活動。
在Android用ZXing.jar識別二維碼的精簡版(簡化了配置和代碼)
最近公司做了一款OTP令牌激活的產品,由於之前激活手機令牌需要輸入很多的激活信息才能進行激活。經過一段使用後,發現易用性不是很強,考慮如果加入二維碼的的掃碼功能豈不是大大
Android動態生成課程表 詳解
根據提供的課程信息,動態生成課程表。不同於網上流傳的課表形式,課程節數是固定,本課表的課程節數不固定。1、效果圖每天共有12節課,上課節數每天都不同。2、布局文件代碼周一
Android apk增量升級
前言別看本文看上去很簡單,實際在實驗過程中遇到了很多問題,比如andorid studio下ndk編譯報錯,而本文呈現給大家的都是最終可行的方法.所需資源bzip2 bs
android實現雙擊事件暨多擊事件詳解
最近在多擊事件上稍微研究了下,在此做簡要分析,供大家吐槽參考 方法一: 將兩次點擊的時間間隔小於0.5s的默認為雙擊事件 m