2014-01-06 3 views
3

사용자가 런처를 통해 홈 페이지 나 화면을 수동으로 추가하지 않고 위젯을 자동으로 추가하는 방법을 찾으려고합니다. (가능하면 둘 다 가능하지만 최소한 잠금 화면까지).앱 설치시 Android Widget 추가

다음은 위젯을 홈 화면에 추가해야하는 항목입니다. 내가 뭘 놓치고 있니?

public class MyWidgetProvider extends AppWidgetProvider { 

    private static final String ACTION_CLICK = "ACTION_CLICK"; 

    @Override 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 


    ComponentName thisWidget = new ComponentName(context, 
     MyWidgetProvider.class); 
    int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget); 
    final List<AppWidgetProviderInfo> infos = appWidgetManager.getInstalledProviders(); 


    AppWidgetProviderInfo appWidgetInfo = null; 

    for (final AppWidgetProviderInfo info : infos) { 
    Log.v("AD3", info.provider.getPackageName() + "/" 
      + info.provider.getClassName()); 
} 

    for (final AppWidgetProviderInfo info : infos) { 
     if (info.provider.getClassName().equals(thisWidget.getClassName()) && info.provider.getPackageName().equals(thisWidget.getPackageName())) { 

     appWidgetInfo = info; 
     break; 
     } 
    } 
    if (appWidgetInfo == null) 
     return; //stop here 

    for (int widgetId : allWidgetIds) { 

     int number = (new Random().nextInt(100)); 

     RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
      R.layout.widget_layout); 
     Log.w("WidgetExample", String.valueOf(number)); 
     remoteViews.setTextViewText(R.id.update, String.valueOf(number)); 

     Intent intent = new Intent(context, MyWidgetProvider.class); 

     intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); 
     intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds); 

     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 
      0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent); 
     appWidgetManager.updateAppWidget(widgetId, remoteViews); 
    } 
    } 
} 

답변

5

이것이 가능하지 않다는 사실을 놓치 셨습니다. 홈 화면이나 잠금 화면에 앱 위젯을 강제로 추가하는 API는 없습니다. 모든 홈 화면과 잠금 화면이 앱 위젯을 지원하는 것은 아닙니다.

여러분의 앱 위젯이 홈 화면에 미리 설치되어있는 ROM mod을 롤업 할 수 있습니다. 제조사의 방식입니다.