私はデバイス用のAndroidアプリケーションを開発しようとしています(デバイスはタブレットや電話ではなく、Android 4.1.1を実行する事前構成されたAndroidボードです)。アクティビティの1つは、以下に示すように、いくつかのタイプの情報のカスタマイズされたダッシュボードを表示する必要があります
ここに表示される情報の種類は事前に構成されています。これらすべてを最初から開発するのではなく、ウィジェット(天気やカレンダーなど)を備え、レイアウトにウィジェットを含めるアプリをインストールすることを計画しています。
以下のリンクを参照しました
自分のアプリケーションにウィジェットを追加します。-Android
http://www.anddev.org/appwidgethost_tutorial-t10329.html
ほとんどのコードを完成させました。
public class MainActivity extends Activity {
private AppWidgetManager mAppWidgetManager;
private AppWidgetHost mAppWidgetHost;
static final int APPWIDGET_HOST_ID = 2037;
private AppWidgetHostView widgets[] = new AppWidgetHostView[16];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAppWidgetManager = AppWidgetManager.getInstance(this);
mAppWidgetHost = new AppWidgetHost(this, APPWIDGET_HOST_ID);
setContentView(r.id.layout_main);
****here is where I am stuck??****
int [] ids = AppWidgetManager.getInstance(context).getAppWidgetIds(name);
mAppWidgetHost.startListening();
}
しかし、私が立ち往生している場所は、ウィジェットマネージャーを指定して必要な特定のウィジェットを取得するにはどうすればよいですか。ウィジェット「com.android.deskclock/com.android.alarmclock.AnalogAppWidgetProvider」に興味があるとしましょう
ご意見をお聞かせください。
更新: 以下のコードを追加しました
mAppWidgetManager = AppWidgetManager.getInstance(this);
mAppWidgetHost = new AppWidgetHost(this, APPWIDGET_HOST_ID);
int appWidgetId = mAppWidgetHost.allocateAppWidgetId();
ComponentName name = new ComponentName("com.android.deskclock","com.android.alarmclock.AnalogAppWidgetProvider");
int [] ids = mAppWidgetManager.getAppWidgetIds(name);
if(ids != null && ids.length>0){
System.err.println("Number of widget ids :"+ids.length);
AppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getAppWidgetInfo(ids[0]);
appWidgetId = ids[0];
LinearLayout parent= (LinearLayout) findViewById(R.id.generalDashboardLayout);
parent.addView(mAppWidgetHost.createView(this, appWidgetId, appWidgetInfo));
}else{
System.err.println("Ids is null");
}
常に「Idsisnull」と出力されますビューに追加するウィジェットが見つかりません
助けてください