Android SMS & GPS App - 安全权限

Posted

技术标签:

【中文标题】Android SMS & GPS App - 安全权限【英文标题】:Android SMS & GPS App - Security Permission 【发布时间】:2016-10-17 20:31:26 【问题描述】:

我的原型应用程序出现问题。它在我的 PC 上的两个模拟器之间运行良好,但是当我将它安装在手机上时,它不会发送短信,甚至不会请求许可(如果这是问题的话)。 此外,无论我做什么,在应用程序启动时,每次按下按钮时以及在每次新的意图启动时,我都会收到相同的错误:

 E/DatabaseUtils: Writing exception to parcel
                                            java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
                                                at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140)
                                                at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038)
                                                at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607)
                                                at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
                                                at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273)
                                                at android.os.Binder.execTransact(Binder.java:388)
                                                at dalvik.system.NativeStart.run(Native Method)

我一直在研究很多类似的问题,我确实添加了

使用权限 android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>

到我的清单,但似乎没有什么对我有用。 对我来说真正奇怪的是错误发生在应用程序启动时,因为在那一点上似乎没有任何有趣的事情发生:

public class MainActivity extends AppCompatActivity 



@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



// Go to contact list
public void onClick(View view) 
    Intent i  = new Intent(this,AddContact.class);
    startActivity(i);

public void onGPS(View view) 
    Intent j = new Intent(this,GPSActivity.class);
    startActivity(j);

@Override
public boolean onCreateOptionsMenu(Menu menu) 
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;


@Override
public boolean onOptionsItemSelected(MenuItem item) 
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) 
        return true;
    

    return super.onOptionsItemSelected(item);

有什么想法吗?

【问题讨论】:

您是否曾在同一设备上为多个用户安装了该应用程序? 查看link 嗯好的,所以这似乎是一个 S3 问题。这实际上是我正在使用的手机! - 不,我没有为多个用户安装该应用程序。 【参考方案1】:

问题似乎出在三星 Galaxy S3 上。链接:Permission Denial: this requires android.permission.INTERACT_ACROSS_USERS_FULL Sumighosh Chaurvil 提供的解释了这个问题;而且真的没什么可做的。

我在另一部手机上安装了该应用程序,它没有任何问题!

【讨论】:

以上是关于Android SMS & GPS App - 安全权限的主要内容,如果未能解决你的问题,请参考以下文章

android 4.4(KitKat)上,如何开发SMS功能的APP

解码肯尼亚狮子会报告 GPS 位置的 SMS

Android定位测试(深坑)

如何使用 Google App 或 GPS 获取当前位置? [复制]

android中的gps示例包括跟踪功能

Android P GPS信号模拟