Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 锁屏小部件不工作,也不显示任何内容_Java_Android_Xml - Fatal编程技术网

Java 锁屏小部件不工作,也不显示任何内容

Java 锁屏小部件不工作,也不显示任何内容,java,android,xml,Java,Android,Xml,我正在开发屏幕锁定小部件或以编程方式锁定屏幕。我从前面的问题中得到了一些好的想法,我做了一些很好的事情,但是当我运行代码时,没有异常和错误。但当我跑的时候,它什么也看不出来。 我想要的是,当用户单击小部件时,它会锁定屏幕 Manifest.xml文件 ` } Appwidgetprovider.java 公共类NewAppWidget扩展了AppWidgetProvider{ 私有静态最终内部管理意图=15; 私有静态最终字符串描述=“示例管理员描述”; 私有设备policymanager m

我正在开发屏幕锁定小部件或以编程方式锁定屏幕。我从前面的问题中得到了一些好的想法,我做了一些很好的事情,但是当我运行代码时,没有异常和错误。但当我跑的时候,它什么也看不出来。 我想要的是,当用户单击小部件时,它会锁定屏幕

Manifest.xml文件

`

}

Appwidgetprovider.java

公共类NewAppWidget扩展了AppWidgetProvider{
私有静态最终内部管理意图=15;
私有静态最终字符串描述=“示例管理员描述”;
私有设备policymanager mDevicePolicyManager;
私有组件名称mComponentName;
@凌驾
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
//可能有多个窗口小部件处于活动状态,因此请更新所有窗口小部件
final int N=appWidgetIds.length;
对于(int i=0;i
AdminManageReceiver.java

公共类AdminManageReceiver扩展DeviceAdminReceiver{
}

首先,您可能无法对
设备管理员接收器
应用程序WidgetProvider
使用单个
。使用应用程序小部件的Android可能不具有
Android.permission。绑定设备管理
权限,阻止它们使用您的
。使用两个单独的
>
元素,一个用于
DeviceAdminReceiver
,一个用于
AppWidgetProvider


其次,请记住,锁屏上的应用程序小部件仅在安卓4.2至4.4上受支持。安卓的旧版本和新版本不支持此功能。

我在安卓系统中更强大,我放置了第二个接收器,但无法工作。请编辑我的代码并更正,谢谢回复
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.NoDisplay"
        android:label="@string/app_name"
        android:excludeFromRecents="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.ASSIST" />
        </intent-filter>
    </activity>

    <receiver android:name=".NewAppWidget"
        android:permission="android.permission.BIND_DEVICE_ADMIN">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/new_app_widget_info" />
    </receiver>
</application>
final static int ENABLE_ADMIN = 1;
final static int SUCESS = -1;

private ComponentName mAdminName = null;

public final void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mAdminName = new ComponentName(this, AdminManageReceiver.class);

    DevicePolicyManager mDevicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

    Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);

    if (!mDevicePolicyManager.isAdminActive(mAdminName)) {
        showAdminManagement();
    }

    if (mDevicePolicyManager.isAdminActive(mAdminName)) {
        mDevicePolicyManager.lockNow();
    }
    else {
        Log.e("screenlock", "Unable to lock the phone D:");
    }

    finish();
}

private void showAdminManagement() {
    // TODO Auto-generated method stub
    Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
    intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName);
    intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
            R.string.desc_enable_admin);
    startActivityForResult(intent, ENABLE_ADMIN);

}
public class NewAppWidget extends AppWidgetProvider {
private static final int ADMIN_INTENT = 15;
private static final String description = "Sample Administrator description";
private DevicePolicyManager mDevicePolicyManager;
private ComponentName mComponentName;

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    // There may be multiple widgets active, so update all of them
    final int N = appWidgetIds.length;
    for (int i = 0; i < N; i++) {
        //updateAppWidget(context, appWidgetManager, appWidgetIds[lock]);
        Intent intent = new Intent(context,MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
        RemoteViews View = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
        View.setOnClickPendingIntent(R.id.imageButton, pendingIntent);
        appWidgetManager.updateAppWidget(appWidgetIds, View);


    }
}