2017-01-23 7 views
0

私はアンドロイドの新機能です。私は他のアプリをロックするためのアプリを開発しています。これは私のサービスクラスです。私はアンドロイドデバイスからアプリのリストを生成することができます、そこから私はロックするために各アプリを選択することができます。その後、MYServiceクラスが実行されます。しかし、私のアプリはwhat'sapp、facebookなどのような選択されたアプリのためにロックされていません。常に現在の(開発中の)アプリケーションをロックしています。誰もがFacebookのような選択されたアプリケーションをロックするために何をするのを助けることができますか?また、いつサービスクラスに電話する必要がありますかアプリケーションをロックするサービスが正常に動作しません。

public class MyService extends android.app.Service { 

    final class TheThread implements Runnable{ 

     int serviceID ; 
     TheThread(int serviceID){ 
      this.serviceID = serviceID; 
     } 

     @Override 
     public void run() { 

      synchronized(this){ 

       try{ 
        wait(10000); 
       }catch(InterruptedException e){ 

       } 

      } 

     } 
    } 



    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 


     Toast.makeText(MyService.this, "Service started!!", Toast.LENGTH_LONG).show(); 
     instance = this; 
     Thread thread = new Thread(new TheThread(startId)); 
     thread.start(); 

     PackageManager pm = getPackageManager(); 

     List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 

     for (ApplicationInfo packageInfo : packages) { 

     } 

     ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1); 
     ActivityManager.RunningTaskInfo ar = RunningTask.get(0); 
     String activityOnTop = ar.topActivity.getClassName(); 
     Toast.makeText(MyService.this, "Activity .... : "+activityOnTop, Toast.LENGTH_LONG).show(); 

     if(!activityOnTop.equals("com.package.name")) 
     { 
      Intent intent1 = getPackageManager().getLaunchIntentForPackage("com.package.name"); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent1);  
      Toast.makeText(this, "My Service Running", Toast.LENGTH_LONG).show();  
      Intent lockIntent = new Intent(MyService.this, Lockscreen.class); 
      lockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      instance.startActivity(lockIntent); 

     } 

//////////////////////////////////////////////////////////////////////////////// 

     return START_STICKY; 

    } 
+0

私はfacebookのようなアプリに直接アクセスできます。ロック画面のアクティビティはそこに表示されません。 – Dev

+0

この問題を解決するには誰も助けてください。私は完全にここでブロックされています。ヘルプをいただければ幸いです。 – Dev

答えて

1

Androidセキュリティモデルを確認してください。基本的には、バニラインストールで他のアプリケーションにアクセスすることはできません。あなたは完全にサンドボックス化されています。

https://developer.android.com/training/articles/security-tips.html

+0

つまり、android-os-sourcecodeを変更せずにすべてのアプリケーションに対して「ロックアップサービス」を実装することはできません。ルーティッドアンドロイドデバイスでは、これ以上実装されておらず、動作しない[xposed-framework](http://repo.xposed.info/module/de.robv.android.xposed.installer)でこれを実装できますアンドロイド6以上。 – k3b

+0

他のアプリをロックするにはどうすればよいですか?他のアプリをロックする方法は? – Dev

+0

あなたはハッキングされたAndroidディストリビューションなしではできません。 k3bは正しい。変更されたOSが必要です。 –

関連する問題