在Android主屏幕

时间:2017-05-15 02:42:07

标签: java android mobile homescreen home-screen-widget

我有系统级权限,我想让我的小部件成为设备主屏幕上的默认项目。

我在清单

中尝试使用以下内容
    <uses-permission android:name="android.permission.BIND_APPWIDGET"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

并在清单

中的应用程序标记中
<receiver
        android:name=".StartOnBootReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
</receiver>

这是在名为StartOnBootReceiver.java的类

public class StartOnBootReciever extends BroadcastReceiver {

    private static final String TAG = "rwid_StartOnBootReceiver";

    public StartOnBootReciever(){
    }

    @Override
    public void onReceive(Context context, Intent intent){
        Log.d(TAG, "Your app is alive");
        final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
        final AppWidgetHost appWidgetHost =  new AppWidgetHost(context,R.id.Acceleration_Widget);

        int appWidgetId = appWidgetHost.allocateAppWidgetId();
        ComponentName comp = new ComponentName(context.getPackageName(),WidgetActivity.class.getName());
        Log.d(TAG,""+appWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId,comp));

        Intent intent1 = new Intent(context, WidgetActivity.class);
        intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent1);
    }
}

我知道这个代码会因为我的日志记录而在设备启动时运行,但我似乎无法在主屏幕上显示小部件。

0 个答案:

没有答案