17

私はセキュリティ アプリケーションを開発しています。これにより、ユーザーが頻繁に呼び出されず、以前に電話したことがない電話番号をダイヤルした場合、ユーザーは自分自身を再認証する必要があります。この目的のために、電話番号を確認した後に電話をロックしたいと考えています。

public class outgoingCalls extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

    Log.v("onReceive", "In onReceive()");
    if (confidence == 0) {
        Log.v("onReceive","confidence zeroed");
        Intent i = new Intent();
        i.setClassName("abc.xyz.SECURITY","abc.xyz.SECURITY.lockActivity");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    } 
}

この新しい Activity lockActivity では、コメントした電話をロックする必要があります // LOCK PHONE

public class lockActivity extends Activity {  

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.v("lock","lockActivity onCreate method called");
        //  setContentView(R.layout.main); 
        Log.v("lock","locking");
// LOCK PHONE
}
} 

私が試した方法では電話がロックされません。これらには次のものが含まれます。

1.  KeyguardManager mgr = (KeyguardManager)   getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = mgr.newKeyguardLock("edu.Boston.SECURITY.lockActivity"); 
((KeyguardLock) lock).reenableKeyguard(); 

2.  PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(100);//int amountOfTime

3. PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,    "Tag");
wl.acquire();
wl.release();

4. WindowManager.LayoutParams params = getWindow().getAttributes();
   params.screenBrightness = 0;
   getWindow().setAttributes(params);

Android マニフェスト ファイルには以下の権限があります

    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK" />

電話をロックできないのはなぜですか? ポインタはありますか?ご協力いただきありがとうございます。感謝します!

4

1 に答える 1

2

DevicePolicyManager を作成してみてください

http://developer.android.com/training/enterprise/device-management-policy.html

そして、次のように呼び出します。

DevicePolicyManager mDPM  = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
mDPM.lockNow();
于 2012-11-01T21:54:04.350 に答える