質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.26%

  • Android

    5359questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • C#

    4998questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Xamarin

    327questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

android xamarin killbackgroundprocesses();コンパイル通ったが、実行されていない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 88

mercurian-teto

score 29

Xamarin.Androidでのアプリ開発初心者です。
android5.1.1を使用しています

killbackground();

バックグラウンドサービスアプリを強制終了しようと思ったのですが、
終了されません。compileはすでに通っています。

killbackground();を発動させる際に必要となる
コードもmanifestのファイルに追加しています。
コードは以下の通りです。

MainActivity.cs

using Android.App;
using Android.Widget;
using Android.Content;
using Android.OS;


namespace App8
{
    [Activity(Label = "App8", MainLauncher = true)]

    public class MainActivity : Activity
    {

        protected override void OnCreate(Bundle bundle)
        {

            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            Button btnM = FindViewById<Button>(Resource.Id.btnSayHello);
            TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg);

            ActivityManager am = (ActivityManager)GetSystemService(Context.ActivityService) ;



            btnM.Click += delegate
            {
                am.KillBackgroundProcesses("com.google.android.youtube");
            };


        }
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
          package="App8.App8" 
          android:versionCode="1" 
          android:versionName="1.0">
  <uses-sdk android:minSdkVersion="21" />

  <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
  <application android:allowBackup="true" android:label="@string/app_name">
  </application>
</manifest>

どこに不備がありますか

補足1

目的ですが、以下の通りです。

アンドロイドのスマホ依存症対策のアプリ
ubhindとアプリロック
とりあえず、このアプリを組み合わせると
自律型の依存対策アプリと変化します。
これらのアプリはsystem administratorに登録することができて、アンインストール際に
設定画面へ行ってとsystem administrator を解除するようにすることができます。
つまり設定画面を時間帯制限すれば、設定を一定時間いじれなくすることができます。
また、ubhindでアプリごとに使用時間を制限することができます。
(その他の詳細は省かせてもらいます)

このようなすでにいいものを探しておいたのですが、
セーフモードの機能で解除できることを知って、使用することを断念しました。
そのうえセーフモードにしてもネットやゲーム、動画もほとんど普通にできてしまうので。
そのなか、
セーフモード中でもロックがかかるものを探していたらsystem administrator登録できる
offtimeというアプリを発見しました。
セーフモード中でもアプリを使用制限するとても珍しいアプリなのですが、大変役には立つのですが、
このアプリは
やはり、以前使っていたアプリごとに使用時間を制限するソフトを使用したいと思いました。
そこで、いったんofftimeを使用することにして、通常起動時には先ほどの2つのアプリを使って、offtimeは起動を封じて
セーフモードではofftimeを使うといった(offtimeを封じるアプリは多分セーフモードでは動かないことを前提にしています)
ということを考え付きました。
要は通常起動時にofftimeの起動をできなくするアプリが作れたらいいのですが、それができなく困っております。
offtimeというアプリ(サードパーティー製アプリ)がアプリの使用を制限する際、サービスアプリを起動するのですが、

このメソッドを使っても終了してくれません。
サービスアプリのパッケージ名はDisable Serviceで、これでofftimeのアプリをブロックするサービスのパッケージ名を知ることができます。

設定→アプリ→無効化では動かなくなるのですが
先ほど述べたkillbackgroundprocessesでは終了できません。

まとめますと、
設定画面を使わずに
アプリだけでofftimeのアプリをロックするサービスアプリを強制終了するアプリと作ろうと思っています。

事後的な解決はなしとします。
セーフモード時に起動することによる危険性も考慮しない(覚悟する)ものとします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • Zuishin

    2018/01/04 17:01

    終了させたいのが offtime なら offtime で実験してください。KillBackgroundProcess はバックグラウンドプロセスを殺します。フォアグラウンドではありません。

    キャンセル

  • mercurian-teto

    2018/01/04 18:15 編集

    offtimeのパッケージ名にしましたが、(サービスアプリでパッケージ名co.offtime.lifestyle.core.bocker.BlockerService)設定でアプリを終了するようにhttps://rjgreklgerjgelrtjieritoj.amebaownd.com/posts/3436768終了されませんでした。offtimeのパッケージはdisable appというアプリを使えば、詳細が出てきます。

    キャンセル

  • mercurian-teto

    2018/01/06 22:21

    すいませんofftimeのパッケージ名ではなくofftimeが発生させているサービスのパッケージ名をkillbackgroundprocessesに渡しました。サービスアプリってフォアグラウンドのアプリではないと思うのですが、どうでしょうか。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.26%

関連した質問

同じタグがついた質問を見る

  • Android

    5359questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • C#

    4998questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Xamarin

    327questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。